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
|
||||
|
||||
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 long long tf[MAXMULTI];
|
||||
|
||||
unsigned short sn[MAXMULTI];
|
||||
unsigned short digiCh[MAXMULTI];
|
||||
|
|
@ -21,13 +23,16 @@ public:
|
|||
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;
|
||||
tf[i] = 0;
|
||||
index[i] = 0;
|
||||
sn[i] = 0;
|
||||
digiCh[i] = 0;
|
||||
|
|
@ -35,30 +40,32 @@ public:
|
|||
}
|
||||
}
|
||||
|
||||
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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user