29 |
#include "GLTables.h" |
#include "GLTables.h" |
30 |
|
|
31 |
|
|
32 |
void Digitizer::DigitizeAC() { |
void Digitizer::DigitizeAC(TF1 *attenAC) { |
33 |
// created: J. Conrad, KTH |
// created: J. Conrad, KTH |
34 |
// modified: S. Orsi, INFN Roma2 |
// modified: S. Orsi, INFN Roma2 |
35 |
// fDataAC[0-63]: main AC board |
// fDataAC[0-63]: main AC board |
38 |
// We activate all branches. Once the digitization algorithm is determined |
// We activate all branches. Once the digitization algorithm is determined |
39 |
// only the branches that involve needed information will be activated |
// only the branches that involve needed information will be activated |
40 |
|
|
|
// fhBookTree->SetBranchStatus("Ievnt",&Ievnt);//modified by E.Vannuccini 03/08 |
|
|
// fhBookTree->SetBranchStatus("Nthcat",1); |
|
|
// fhBookTree->SetBranchStatus("Iparcat",1); |
|
|
// fhBookTree->SetBranchStatus("Icat",1); |
|
|
// fhBookTree->SetBranchStatus("Xincat",1); |
|
|
// fhBookTree->SetBranchStatus("Yincat",1); |
|
|
// fhBookTree->SetBranchStatus("Zincat",1); |
|
|
// fhBookTree->SetBranchStatus("Xoutcat",1); |
|
|
// fhBookTree->SetBranchStatus("Youtcat",1); |
|
|
// fhBookTree->SetBranchStatus("Zoutcat",1); |
|
|
// fhBookTree->SetBranchStatus("Erelcat",1); |
|
|
// fhBookTree->SetBranchStatus("Timecat",1); |
|
|
// fhBookTree->SetBranchStatus("Pathcat",1); |
|
|
// fhBookTree->SetBranchStatus("P0cat",1); |
|
|
// fhBookTree->SetBranchStatus("Nthcas",1); |
|
|
// fhBookTree->SetBranchStatus("Iparcas",1); |
|
|
// fhBookTree->SetBranchStatus("Icas",1); |
|
|
// fhBookTree->SetBranchStatus("Xincas",1); |
|
|
// fhBookTree->SetBranchStatus("Yincas",1); |
|
|
// fhBookTree->SetBranchStatus("Zincas",1); |
|
|
// fhBookTree->SetBranchStatus("Xoutcas",1); |
|
|
// fhBookTree->SetBranchStatus("Youtcas",1); |
|
|
// fhBookTree->SetBranchStatus("Zoutcas",1); |
|
|
// fhBookTree->SetBranchStatus("Erelcas",1); |
|
|
// fhBookTree->SetBranchStatus("Timecas",1); |
|
|
// fhBookTree->SetBranchStatus("Pathcas",1); |
|
|
// fhBookTree->SetBranchStatus("P0cas",1); |
|
|
// fhBookTree->SetBranchStatus("Nthcard",1); |
|
|
// fhBookTree->SetBranchStatus("Iparcard",1); |
|
|
// fhBookTree->SetBranchStatus("Icard",1); |
|
|
// fhBookTree->SetBranchStatus("Xincard",1); |
|
|
// fhBookTree->SetBranchStatus("Yincard",1); |
|
|
// fhBookTree->SetBranchStatus("Zincard",1); |
|
|
// fhBookTree->SetBranchStatus("Xoutcard",1); |
|
|
// fhBookTree->SetBranchStatus("Youtcard",1); |
|
|
// fhBookTree->SetBranchStatus("Zoutcard",1); |
|
|
// fhBookTree->SetBranchStatus("Erelcard",1); |
|
|
// fhBookTree->SetBranchStatus("Timecard",1); |
|
|
// fhBookTree->SetBranchStatus("Pathcard",1); |
|
|
// fhBookTree->SetBranchStatus("P0card",1); |
|
|
|
|
41 |
fDataAC[0] = 0xACAC; |
fDataAC[0] = 0xACAC; |
42 |
fDataAC[64]= 0xACAC; |
fDataAC[64]= 0xACAC; |
43 |
fDataAC[1] = 0xAC11; |
fDataAC[1] = 0xAC11; |
75 |
fDataAC[i+90] = evntLSB; |
fDataAC[i+90] = evntLSB; |
76 |
}; |
}; |
77 |
|
|
|
// coincidences are dummy (increment by 1 at each event) |
|
|
// for (UInt_t i=0; i<=7; i++){ |
|
|
// fDataAC[i+42] = 0x0000; |
|
|
// fDataAC[i+106] = 0x0000; |
|
|
// } |
|
78 |
for (UInt_t i=0; i<=7; i++){ |
for (UInt_t i=0; i<=7; i++){ |
79 |
fDataAC[i+42] = evntLSB; |
fDataAC[i+42] = evntLSB; |
80 |
fDataAC[i+106] = evntLSB; |
fDataAC[i+106] = evntLSB; |
86 |
fDataAC[114] = 0x0000; |
fDataAC[114] = 0x0000; |
87 |
|
|
88 |
// dummy FPGA clock (increment by 1 at each event) |
// dummy FPGA clock (increment by 1 at each event) |
|
/* |
|
|
fDataAC[51] = 0x006C; |
|
|
fDataAC[52] = 0x6C6C; |
|
|
fDataAC[115] = 0x006C; |
|
|
fDataAC[116] = 0x6C6C; |
|
|
*/ |
|
89 |
if (Ievnt<=0xFFFF) { |
if (Ievnt<=0xFFFF) { |
90 |
fDataAC[51] = 0x0000; |
fDataAC[51] = 0x0000; |
91 |
fDataAC[52] = Ievnt; |
fDataAC[52] = Ievnt; |
140 |
// 9.81177e+00 +- 1.21284e+00 |
// 9.81177e+00 +- 1.21284e+00 |
141 |
// hp: 1 minimum ionising particle at 35cm from the PMT releases 1mip |
// hp: 1 minimum ionising particle at 35cm from the PMT releases 1mip |
142 |
|
|
143 |
TF1 *attenAC = new TF1("fAttAC",".825+.64*atan(9.8/x)",0.,45.); |
//TF1 *attenAC = new TF1("fAttAC",".825+.64*atan(9.8/x)",0.,45.); |
144 |
|
|
145 |
// PMT positions: x,y,z: (average position of the 2 PMTs) |
// PMT positions: x,y,z: (average position of the 2 PMTs) |
146 |
Float_t posCasPmt[4][3]={{28.308, -17.168, 63.644}, // 1 - CAS CPU: x,y,z |
Float_t posCasPmt[4][3]={{28.308, -17.168, 63.644}, // 1 - CAS CPU: x,y,z |
163 |
dAC=sqrt(pow((Xincas[k]+Xoutcas[k])/2 - posCasPmt[Icas[k]-1][0],2) + pow((Yincas[k]+Youtcas[k])/2 - posCasPmt[Icas[k]-1][1],2) + pow((Zincas[k]+Zoutcas[k])/2 - posCasPmt[Icas[k]-1][2],2)); |
dAC=sqrt(pow((Xincas[k]+Xoutcas[k])/2 - posCasPmt[Icas[k]-1][0],2) + pow((Yincas[k]+Youtcas[k])/2 - posCasPmt[Icas[k]-1][1],2) + pow((Zincas[k]+Zoutcas[k])/2 - posCasPmt[Icas[k]-1][2],2)); |
164 |
SumEcas[Icas[k]] += Erelcas[k]*attenAC->Eval(dAC); |
SumEcas[Icas[k]] += Erelcas[k]*attenAC->Eval(dAC); |
165 |
} |
} |
166 |
}; |
}; |
167 |
|
// attenAC->Delete(); |
168 |
// look in CARD |
// look in CARD |
169 |
for (Int_t k= 0;k<Nthcard;k++){ |
for (Int_t k= 0;k<Nthcard;k++){ |
170 |
if (Erelcard[k] >0) |
if (Erelcard[k] >0) |