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:
parent
307d5dfc44
commit
c3bb28a1a2
|
|
@ -5,15 +5,17 @@
|
||||||
|
|
||||||
#define MAXMULTI 1000
|
#define MAXMULTI 1000
|
||||||
|
|
||||||
class Det{
|
class Det
|
||||||
|
{
|
||||||
public:
|
public:
|
||||||
Det(): multi(0) {Clear(); }
|
Det() : multi(0) { Clear(); }
|
||||||
|
|
||||||
unsigned short multi; // max 65535
|
unsigned short multi; // max 65535
|
||||||
unsigned short id[MAXMULTI];
|
unsigned short id[MAXMULTI];
|
||||||
unsigned short ch[MAXMULTI];
|
unsigned short ch[MAXMULTI];
|
||||||
unsigned short e[MAXMULTI];
|
unsigned short e[MAXMULTI];
|
||||||
unsigned long long t[MAXMULTI];
|
unsigned long long t[MAXMULTI];
|
||||||
|
unsigned long long tf[MAXMULTI];
|
||||||
|
|
||||||
unsigned short sn[MAXMULTI];
|
unsigned short sn[MAXMULTI];
|
||||||
unsigned short digiCh[MAXMULTI];
|
unsigned short digiCh[MAXMULTI];
|
||||||
|
|
@ -21,13 +23,16 @@ public:
|
||||||
unsigned short index[MAXMULTI]; // id * nCh + ch;
|
unsigned short index[MAXMULTI]; // id * nCh + ch;
|
||||||
bool used[MAXMULTI];
|
bool used[MAXMULTI];
|
||||||
|
|
||||||
void Clear(){
|
void Clear()
|
||||||
|
{
|
||||||
multi = 0;
|
multi = 0;
|
||||||
for( int i = 0; i < MAXMULTI; i++){
|
for (int i = 0; i < MAXMULTI; i++)
|
||||||
|
{
|
||||||
id[i] = 0;
|
id[i] = 0;
|
||||||
ch[i] = 0;
|
ch[i] = 0;
|
||||||
e[i] = 0;
|
e[i] = 0;
|
||||||
t[i] = 0;
|
t[i] = 0;
|
||||||
|
tf[i] = 0;
|
||||||
index[i] = 0;
|
index[i] = 0;
|
||||||
sn[i] = 0;
|
sn[i] = 0;
|
||||||
digiCh[i] = 0;
|
digiCh[i] = 0;
|
||||||
|
|
@ -35,30 +40,32 @@ public:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Print(){
|
void Print()
|
||||||
|
{
|
||||||
printf("=============================== multi : %u\n", multi);
|
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]);
|
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;
|
nID = maxID;
|
||||||
nCh = maxCh;
|
nCh = maxCh;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CalIndex(){
|
void CalIndex()
|
||||||
for( int i = 0; i < multi; i++){
|
{
|
||||||
index[i] = id[i] * nCh + ch[i] ;
|
for (int i = 0; i < multi; i++)
|
||||||
|
{
|
||||||
|
index[i] = id[i] * nCh + ch[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
unsigned short nID;
|
unsigned short nID;
|
||||||
unsigned short nCh;
|
unsigned short nCh;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -67,6 +67,7 @@ int main(int argc, char **argv){
|
||||||
Det sx3;
|
Det sx3;
|
||||||
Det qqq;
|
Det qqq;
|
||||||
Det pc ;
|
Det pc ;
|
||||||
|
Det misc;
|
||||||
|
|
||||||
printf(" Raw root file : %s\n", inFileName.c_str());
|
printf(" Raw root file : %s\n", inFileName.c_str());
|
||||||
printf(" Run : %03d\n", run);
|
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("pcE", &pc.e, "pcEnergy[pcMulti]/s");
|
||||||
newTree->Branch("pcT", &pc.t, "pcTime[pcMulti]/l");
|
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
|
///================== looping old tree and apply mapping
|
||||||
|
|
||||||
//clock
|
//clock
|
||||||
|
|
@ -112,8 +121,12 @@ int main(int argc, char **argv){
|
||||||
sx3.multi = 0;
|
sx3.multi = 0;
|
||||||
qqq.multi = 0;
|
qqq.multi = 0;
|
||||||
pc.multi = 0;
|
pc.multi = 0;
|
||||||
|
misc.multi=0;
|
||||||
|
|
||||||
|
sx3.Clear();
|
||||||
qqq.Clear();
|
qqq.Clear();
|
||||||
|
pc.Clear();
|
||||||
|
misc.Clear();
|
||||||
|
|
||||||
for( unsigned int i = 0; i < multi; i++){
|
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.t[pc.multi] = e_t[i];
|
||||||
pc.multi ++;
|
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
|
saveFile->cd(); //set focus on this file
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user