| 88 |
var.AC = 0; |
var.AC = 0; |
| 89 |
var.RUN = 1; |
var.RUN = 1; |
| 90 |
var.TRK = 0; |
var.TRK = 0; |
| 91 |
|
var.ORB = 0; |
| 92 |
|
var.TRG = 0; |
| 93 |
var.CALO = 0; |
var.CALO = 0; |
| 94 |
var.S4 = 0; |
var.S4 = 0; |
| 95 |
var.ND = 0; |
var.ND = 0; |
| 131 |
|
|
| 132 |
void FEVdetector::GetWindow(){ |
void FEVdetector::GetWindow(){ |
| 133 |
otr->GetEntry(maxevent); |
otr->GetEntry(maxevent); |
| 134 |
|
// |
| 135 |
if ( level.file < 2 ){ |
if ( level.file < 2 ){ |
| 136 |
ph = eh->GetPscuHeader(); |
ph = eh->GetPscuHeader(); |
| 137 |
lastevno = (int)ph->Counter; |
lastevno = (int)ph->Counter; |
| 138 |
} else { |
} else { |
| 139 |
lastevno = L2->GetOrbitalInfo()->pkt_num; // to be changed as soon as we will have pkt_counter in the level2 file! |
if ( var.ORB ){ |
| 140 |
|
lastevno = L2->GetOrbitalInfo()->pkt_num; |
| 141 |
|
} else { |
| 142 |
|
lastevno = 0; |
| 143 |
|
}; |
| 144 |
}; |
}; |
| 145 |
otr->GetEntry(minevent); |
otr->GetEntry(minevent); |
| 146 |
if ( level.file < 2 ){ |
if ( level.file < 2 ){ |
| 147 |
ph = eh->GetPscuHeader(); |
ph = eh->GetPscuHeader(); |
| 148 |
firstevno = (int)ph->Counter; |
firstevno = (int)ph->Counter; |
| 149 |
} else { |
} else { |
| 150 |
firstevno = L2->GetOrbitalInfo()->pkt_num; // to be changed as soon as we will have pkt_counter in the level2 file! |
if ( var.ORB ){ |
| 151 |
|
firstevno = L2->GetOrbitalInfo()->pkt_num; |
| 152 |
|
} else { |
| 153 |
|
firstevno = 0; |
| 154 |
|
}; |
| 155 |
}; |
}; |
| 156 |
} |
} |
| 157 |
|
|
| 496 |
trcs = (TString)trc.str().c_str(); |
trcs = (TString)trc.str().c_str(); |
| 497 |
} else { |
} else { |
| 498 |
headcold = headc; |
headcold = headc; |
| 499 |
headc = L2->GetOrbitalInfo()->pkt_num; // to be changed as soon as we will have obt in the level2 file! |
if ( var.ORB ){ |
| 500 |
OBT = L2->GetOrbitalInfo()->OBT; // to be changed as soon as we will have obt in the level2 file! |
headc = L2->GetOrbitalInfo()->pkt_num; |
| 501 |
DOBT = OBT - OOBT; |
OBT = L2->GetOrbitalInfo()->OBT; |
| 502 |
OOBT = OBT; |
DOBT = OBT - OOBT; |
| 503 |
if ( thisentry == minevent || DOBT < 0 || (headc-headcold-1)!=0 ) DOBT = 0; |
OOBT = OBT; |
| 504 |
var.etime = OBT; |
if ( thisentry == minevent || DOBT < 0 || (headc-headcold-1)!=0 ) DOBT = 0; |
| 505 |
|
var.etime = OBT; |
| 506 |
|
} else { |
| 507 |
|
var.etime = 0; |
| 508 |
|
}; |
| 509 |
// |
// |
| 510 |
// who gave the trigger? |
// who gave the trigger? |
| 511 |
// |
// |
| 512 |
calotrig = 0; |
Int_t trigconf = 0; |
| 513 |
if ( L2->GetTrigLevel2()->patterntrig[0] ) calotrig = 1; |
if ( var.TRG ){ |
| 514 |
toftrig = 0; |
calotrig = 0; |
| 515 |
if ( L2->GetTrigLevel2()->patterntrig[2] || L2->GetTrigLevel2()->patterntrig[3] || L2->GetTrigLevel2()->patterntrig[4] || L2->GetTrigLevel2()->patterntrig[5] ) toftrig = 1; |
if ( L2->GetTrigLevel2()->patterntrig[0] ) calotrig = 1; |
| 516 |
s4pulser = 0; |
toftrig = 0; |
| 517 |
if ( L2->GetTrigLevel2()->patterntrig[1] & (1<<0) ) s4pulser = 1; |
if ( L2->GetTrigLevel2()->patterntrig[2] || L2->GetTrigLevel2()->patterntrig[3] || L2->GetTrigLevel2()->patterntrig[4] || L2->GetTrigLevel2()->patterntrig[5] ) toftrig = 1; |
| 518 |
// |
s4pulser = 0; |
| 519 |
// TOF and calorimeter when giving a trigger will always set this flag since the time window of the signal is greater than 100 ns. |
if ( L2->GetTrigLevel2()->patterntrig[1] & (1<<0) ) s4pulser = 1; |
| 520 |
// S4 sometimes could not set the flag even if the trigger is given. This is a workaround to fix this "bug": |
// |
| 521 |
// |
// TOF and calorimeter when giving a trigger will always set this flag since the time window of the signal is greater than 100 ns. |
| 522 |
if ( !calotrig && !toftrig ) s4pulser = 1; |
// S4 sometimes could not set the flag even if the trigger is given. This is a workaround to fix this "bug": |
| 523 |
// |
// |
| 524 |
Int_t trigconf = L2->GetTrigLevel2()->trigconf; |
if ( !calotrig && !toftrig ) s4pulser = 1; |
| 525 |
|
// |
| 526 |
|
trigconf = L2->GetTrigLevel2()->trigconf; |
| 527 |
|
} else { |
| 528 |
|
trigconf = 0; |
| 529 |
|
} |
| 530 |
stringstream trc; |
stringstream trc; |
| 531 |
trc.str(""); |
trc.str(""); |
| 532 |
if ( trigconf & (1<<0) ) trc << "TOF1"; |
if ( trigconf & (1<<0) ) trc << "TOF1"; |
| 635 |
// |
// |
| 636 |
if ( level.file == -1 ) isOK = gApplication->ProcessLine("filter((TTree *)otr,-1,(Variables &)var);"); |
if ( level.file == -1 ) isOK = gApplication->ProcessLine("filter((TTree *)otr,-1,(Variables &)var);"); |
| 637 |
// |
// |
| 638 |
if ( level.file == 2 ) isOK = gApplication->ProcessLine("filter((PamLevel2 *)L2,2);"); |
// if ( level.file == 2 ) isOK = gApplication->ProcessLine("filter((PamLevel2 *)L2,2);"); |
| 639 |
|
if ( level.file == 2 ) isOK = gApplication->ProcessLine("filter();"); |
| 640 |
// |
// |
| 641 |
// progress bar in text window |
// progress bar in text window |
| 642 |
// |
// |
| 650 |
} |
} |
| 651 |
|
|
| 652 |
Int_t FEVdetector::Load(TTree &mainotr, TFile &mainfile){ |
Int_t FEVdetector::Load(TTree &mainotr, TFile &mainfile){ |
| 653 |
|
//Int_t FEVdetector::Load(TChain &mainotr, TFile &mainfile){ |
| 654 |
file = &mainfile; |
file = &mainfile; |
| 655 |
otr = &mainotr; |
otr = &mainotr; |
| 656 |
L2 = new PamLevel2(); |
L2 = new PamLevel2(); |
| 657 |
// |
// |
| 658 |
if ( level.file == 2 ){ |
if ( level.file == 2 ){ |
| 659 |
// otr = L2->LoadPamTrees(file); |
// otr = L2->LoadPamTrees(file); |
| 660 |
// printf(" %s \n",ddec.Data()); |
printf(" %s \n",ddec.Data()); |
| 661 |
|
// otr->Refresh(); |
| 662 |
|
// otr->Clear(); |
| 663 |
|
// otr = new TTree(); |
| 664 |
otr = L2->GetPamTree(file,ddec.Data()); |
otr = L2->GetPamTree(file,ddec.Data()); |
| 665 |
// |
// |
| 666 |
if ( !otr ) return(0); |
if ( !otr ) return(0); |
| 667 |
// ******************** |
// ******************** |
| 668 |
// load magnetic field |
// load magnetic field |
| 669 |
// ******************** |
// ******************** |
| 670 |
const char *pam_calib = pathtocalibration(); |
// const char *pam_calib = pathtocalibration(); |
| 671 |
// |
// |
| 672 |
stringstream magfie; |
// stringstream magfie; |
| 673 |
magfie.str(""); |
// magfie.str(""); |
| 674 |
// magfie << "/localdisk/mocchiut/test/calib/trk-param/field_param-0/"; |
// magfie << "/localdisk/mocchiut/test/calib/trk-param/field_param-0/"; |
| 675 |
magfie << pam_calib; |
// magfie << pam_calib; |
| 676 |
magfie << "/trk-param/field_param-0/"; |
//magfie << "/trk-param/field_param-0/"; |
| 677 |
// |
// |
| 678 |
L2->GetTrkLevel2()->LoadField(magfie.str().c_str()); |
//L2->GetTrkLevel2()->LoadField(magfie.str().c_str()); |
| 679 |
} else { |
} else { |
| 680 |
// |
// |
| 681 |
// load calorimeter ADC2MIP conversion file |
// load calorimeter ADC2MIP conversion file |
| 810 |
}; |
}; |
| 811 |
}; |
}; |
| 812 |
// |
// |
| 813 |
|
// printf("qua\n"); |
| 814 |
return(1); |
return(1); |
| 815 |
// |
// |
| 816 |
} |
} |
| 3872 |
pcasp4b->Draw("f"); |
pcasp4b->Draw("f"); |
| 3873 |
pcasp4b->Draw(); |
pcasp4b->Draw(); |
| 3874 |
}; |
}; |
| 3875 |
Float_t alfa = 1.2020334; |
// Float_t alfax = 1.2020334; |
| 3876 |
|
Float_t alfax = 1.22157778; |
| 3877 |
|
Float_t alfay = 1.27393111; |
| 3878 |
Float_t lcrd = 0.1815/2.; |
Float_t lcrd = 0.1815/2.; |
| 3879 |
Float_t wcrd = 0.008; |
Float_t wcrd = 0.008; |
| 3880 |
if ( true ){ |
if ( true ){ |
| 4085 |
// |
// |
| 4086 |
// Float_t cardcx = 0.143168*var.sfx; |
// Float_t cardcx = 0.143168*var.sfx; |
| 4087 |
//Float_t cardcy = 0.1475*var.sfy; |
//Float_t cardcy = 0.1475*var.sfy; |
| 4088 |
Float_t cardcx = 0.153168*var.sfx; |
// |
| 4089 |
Float_t cardcy = 0.1575*var.sfy; |
// Float_t cardcx = 0.153168*var.sfx; |
| 4090 |
Float_t acrdx[4] = {-lcrd*cos(alfa), lcrd*cos(alfa), -lcrd*cos(alfa)+wcrd*sin(alfa), -lcrd*cos(alfa)}; |
// |
| 4091 |
Float_t acrdy[4] = {-lcrd*sin(alfa), lcrd*sin(alfa), -lcrd*sin(alfa)-wcrd*cos(alfa), -lcrd*sin(alfa)}; |
Float_t cardcx = (0.19123*(1.-lcrd*cos(alfax)))*var.sfx; |
| 4092 |
Float_t bcrdx[4] = { lcrd*cos(alfa), lcrd*cos(alfa)+wcrd*sin(alfa), -lcrd*cos(alfa)+wcrd*sin(alfa), lcrd*cos(alfa)}; |
// Float_t cardcy = 0.1575*var.sfy; |
| 4093 |
Float_t bcrdy[4] = { lcrd*sin(alfa), lcrd*sin(alfa)-wcrd*cos(alfa), -lcrd*sin(alfa)-wcrd*cos(alfa), lcrd*sin(alfa)}; |
Float_t cardcy = (0.179212*(1.-lcrd*sin(alfax)))*var.sfy; |
| 4094 |
|
Float_t acrdx[4] = {-lcrd*cos(alfax), lcrd*cos(alfax), -lcrd*cos(alfax)+wcrd*sin(alfax), -lcrd*cos(alfax)}; |
| 4095 |
|
Float_t acrdy[4] = {-lcrd*sin(alfax), lcrd*sin(alfax), -lcrd*sin(alfax)-wcrd*cos(alfax), -lcrd*sin(alfax)}; |
| 4096 |
|
Float_t bcrdx[4] = { lcrd*cos(alfax), lcrd*cos(alfax)+wcrd*sin(alfax), -lcrd*cos(alfax)+wcrd*sin(alfax), lcrd*cos(alfax)}; |
| 4097 |
|
Float_t bcrdy[4] = { lcrd*sin(alfax), lcrd*sin(alfax)-wcrd*cos(alfax), -lcrd*sin(alfax)-wcrd*cos(alfax), lcrd*sin(alfax)}; |
| 4098 |
|
|
| 4099 |
// |
// |
| 4100 |
// CARD3 X/ Y |
// CARD3 X/ Y |
| 4154 |
}; |
}; |
| 4155 |
|
|
| 4156 |
if ( true ){ |
if ( true ){ |
| 4157 |
Float_t acrdx[4] = {-lcrd*cos(alfa), lcrd*cos(alfa), -lcrd*cos(alfa)+wcrd*sin(alfa), -lcrd*cos(alfa)}; |
Float_t acrdx[4] = {-lcrd*cos(alfay), lcrd*cos(alfay), -lcrd*cos(alfay)+wcrd*sin(alfay), -lcrd*cos(alfay)}; |
| 4158 |
Float_t acrdy[4] = {-lcrd*sin(alfa), lcrd*sin(alfa), -lcrd*sin(alfa)-wcrd*cos(alfa), -lcrd*sin(alfa)}; |
Float_t acrdy[4] = {-lcrd*sin(alfay), lcrd*sin(alfay), -lcrd*sin(alfay)-wcrd*cos(alfay), -lcrd*sin(alfay)}; |
| 4159 |
Float_t bcrdx[4] = { lcrd*cos(alfa), lcrd*cos(alfa)+wcrd*sin(alfa), -lcrd*cos(alfa)+wcrd*sin(alfa), lcrd*cos(alfa)}; |
Float_t bcrdx[4] = { lcrd*cos(alfay), lcrd*cos(alfay)+wcrd*sin(alfay), -lcrd*cos(alfay)+wcrd*sin(alfay), lcrd*cos(alfay)}; |
| 4160 |
Float_t bcrdy[4] = { lcrd*sin(alfa), lcrd*sin(alfa)-wcrd*cos(alfa), -lcrd*sin(alfa)-wcrd*cos(alfa), lcrd*sin(alfa)}; |
Float_t bcrdy[4] = { lcrd*sin(alfay), lcrd*sin(alfay)-wcrd*cos(alfay), -lcrd*sin(alfay)-wcrd*cos(alfay), lcrd*sin(alfay)}; |
| 4161 |
// |
// |
| 4162 |
// CARD - Y-view |
// CARD - Y-view |
| 4163 |
// |
// |
| 4164 |
Float_t cardcx = 0.12*var.sfx; |
// Float_t cardcx = 0.12*var.sfx; |
| 4165 |
Float_t cardcy = 0.1475*var.sfy; |
Float_t cardcx = (0.16014*(1.-lcrd*cos(alfay)))*var.sfx; |
| 4166 |
|
// Float_t cardcy = 0.178818*var.sfy; |
| 4167 |
|
Float_t cardcy = (0.178818*(1.-lcrd*sin(alfay)))*var.sfy; |
| 4168 |
|
// Float_t cardcy = 0.1475*var.sfy; |
| 4169 |
// |
// |
| 4170 |
// CARD4 X Y/ |
// CARD4 X Y/ |
| 4171 |
// |
// |