From c3bb28a1a2691a1626def4d6a9d634a9c1a106c3 Mon Sep 17 00:00:00 2001 From: vsitaraman Date: Sat, 25 Apr 2026 12:34:05 -0400 Subject: [PATCH] modified: Armory/ClassDet.h modified: Armory/Mapper.cpp made changes to channel map and Detector class to include misc channels( MCP, RF, IC etc) and fine timing information. --- Armory/ClassDet.h | 65 ++++++++++++++++++++++++++--------------------- Armory/Mapper.cpp | 25 ++++++++++++++++++ 2 files changed, 61 insertions(+), 29 deletions(-) diff --git a/Armory/ClassDet.h b/Armory/ClassDet.h index 510cbb4..cc7f229 100644 --- a/Armory/ClassDet.h +++ b/Armory/ClassDet.h @@ -5,60 +5,67 @@ #define MAXMULTI 1000 -class Det{ +class Det +{ public: - Det(): multi(0) {Clear(); } + Det() : multi(0) { Clear(); } - unsigned short multi; // max 65535 - unsigned short id[MAXMULTI]; - unsigned short ch[MAXMULTI]; - unsigned short e[MAXMULTI]; - unsigned long long t[MAXMULTI]; + unsigned short multi; // max 65535 + unsigned short id[MAXMULTI]; + unsigned short ch[MAXMULTI]; + unsigned short e[MAXMULTI]; + unsigned long long t[MAXMULTI]; + unsigned long long tf[MAXMULTI]; - unsigned short sn[MAXMULTI]; - unsigned short digiCh[MAXMULTI]; + unsigned short sn[MAXMULTI]; + unsigned short digiCh[MAXMULTI]; - unsigned short index[MAXMULTI]; // id * nCh + ch; - bool used[MAXMULTI]; + unsigned short index[MAXMULTI]; // id * nCh + ch; + bool used[MAXMULTI]; - void Clear(){ + void Clear() + { multi = 0; - for( int i = 0; i < MAXMULTI; i++){ + for (int i = 0; i < MAXMULTI; i++) + { id[i] = 0; ch[i] = 0; - e[i] = 0; - t[i] = 0; - index[i] = 0; - sn[i] = 0; - digiCh[i] = 0; - used[i] = false; + e[i] = 0; + t[i] = 0; + tf[i] = 0; + index[i] = 0; + sn[i] = 0; + digiCh[i] = 0; + used[i] = false; } } - void Print(){ + void Print() + { printf("=============================== multi : %u\n", multi); - for( int i = 0; i < multi; i++) { + for (int i = 0; i < multi; i++) + { printf(" %3d | %2d-%-2d(%5d) %5u %15llu \n", i, id[i], ch[i], index[i], e[i], t[i]); } } - void SetDetDimension(unsigned short maxID, unsigned maxCh){ + void SetDetDimension(unsigned short maxID, unsigned maxCh) + { nID = maxID; nCh = maxCh; } - void CalIndex(){ - for( int i = 0; i < multi; i++){ - index[i] = id[i] * nCh + ch[i] ; + void CalIndex() + { + for (int i = 0; i < multi; i++) + { + index[i] = id[i] * nCh + ch[i]; } } private: - unsigned short nID; unsigned short nCh; - }; - -#endif +#endif diff --git a/Armory/Mapper.cpp b/Armory/Mapper.cpp index 8030de1..c63c0c9 100644 --- a/Armory/Mapper.cpp +++ b/Armory/Mapper.cpp @@ -67,6 +67,7 @@ int main(int argc, char **argv){ Det sx3; Det qqq; Det pc ; + Det misc; printf(" Raw root file : %s\n", inFileName.c_str()); printf(" Run : %03d\n", run); @@ -99,6 +100,14 @@ int main(int argc, char **argv){ newTree->Branch("pcE", &pc.e, "pcEnergy[pcMulti]/s"); newTree->Branch("pcT", &pc.t, "pcTime[pcMulti]/l"); + newTree->Branch("miscMulti", &misc.multi, "miscMulti/s"); + newTree->Branch("miscID", &misc.id, "miscID[miscMulti]/s"); + newTree->Branch("miscCh", &misc.ch, "miscCh[miscMulti]/s"); + newTree->Branch("miscE", &misc.e, "miscEnergy[miscMulti]/s"); + newTree->Branch("miscT", &misc.t, "miscTime[miscMulti]/l"); + newTree->Branch("miscF", &misc.tf, "miscFineTime[miscMulti]/l"); + + ///================== looping old tree and apply mapping //clock @@ -112,8 +121,12 @@ int main(int argc, char **argv){ sx3.multi = 0; qqq.multi = 0; pc.multi = 0; + misc.multi=0; + sx3.Clear(); qqq.Clear(); + pc.Clear(); + misc.Clear(); for( unsigned int i = 0; i < multi; i++){ @@ -160,6 +173,18 @@ int main(int argc, char **argv){ pc.t[pc.multi] = e_t[i]; pc.multi ++; } + + //=================================== misc + if( 30000 <= ID && ID < 40000 ) { + misc.id[misc.multi] = (ID - 30000) / 100; + misc.ch[misc.multi] = (ID - 30000) % 100; + misc.e[misc.multi] = e[i]; + misc.t[misc.multi] = e_t[i]; + misc.tf[misc.multi] = e_f[i]; + // if( ID == 30002 || ID == 30004 ) printf("sn : %d ch: %2d | gID %3d | ID %6d | e_f : %d\n", sn[i], ch[i], globalCh, ID, e_f[i]); + misc.multi ++; + } + } saveFile->cd(); //set focus on this file