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.
This commit is contained in:
Vignesh Sitaraman 2026-04-25 12:34:05 -04:00
parent 307d5dfc44
commit c3bb28a1a2
2 changed files with 61 additions and 29 deletions

View File

@ -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

View File

@ -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