77 std::cout <<
"[Apv25RoXtalkAnaProcessor] Finalizing" << std::endl;
78 TH1D * hitN_h =
new TH1D(
"hitN_h",
"hitN_h;Raw SVT Hit Multi;Events/10", 500, 0, 5000);
79 TH1D * lFEBN_h =
new TH1D(
"lFEBN_h",
"lFEBN_h;Raw SVT Hit Multi;Events/10", 500, 0, 5000);
80 TH1D * hFEBN_h =
new TH1D(
"hFEBN_h",
"hFEBN_h;Raw SVT Hit Multi;Events/10", 500, 0, 5000);
81 TH2D * FEBN_hh =
new TH2D(
"FEBN_hh",
"FEBN_hh", 500, 0, 2000, 500, 0, 2000);
82 for (
int i = 0; i <
hitMultis.size(); i++)
94 for(
int sp = 0; sp < 840; sp += 4)
100 lFEBreadRms_g.SetName(
"lFEBreadRms_g");
101 lFEBreadRms_g.SetTitle(
"lFEBreadRms_g;syncPhase;RMS(Read Time minus Event Time)");
102 lFEBreadRms_g.Write();
105 hFEBreadRms_g.SetName(
"hFEBreadRms_g");
106 hFEBreadRms_g.SetTitle(
"hFEBreadRms_g;syncPhase;RMS(Read Time minus Event Time)");
107 hFEBreadRms_g.Write();
110 double lFEBmin = 10000.0;
112 double hFEBmin = 10000.0;
113 for(
int i = 0; i < 210; i++)
127 std::cout <<
"lFEBmin: " << lFEBminI*4 << std::endl;
129 int phase0 = (int)lFEBminI*4;
132 std::cout <<
"lLowCut: " <<
lLowCut <<
" lHighCut: " <<
lHighCut << std::endl;
134 std::cout <<
"hFEBmin: " << hFEBminI*4 << std::endl;
136 int phase1 = (int)hFEBminI*4;
139 std::cout <<
"hLowCut: " <<
hLowCut <<
" hHighCut: " <<
hHighCut << std::endl;
141 std::ofstream calFile(
"calApvXtalk.txt");
142 calFile <<
"trigDel,phase0,phase1,cut0L,cut0H,cut1L,cut1H\n";
144 calFile << phase0 <<
",";
145 calFile << phase1 <<
",";
146 calFile << cut0L <<
",";
147 calFile << cut0H <<
",";
148 calFile << cut1L <<
",";
149 calFile << cut1H << std::endl;
157 TH1D readN_h(Form(
"readN_iter%i_h", buffIter), Form(
"readN_iter%i_h", buffIter), 21, -0.5, 20.5);
158 TH2D lFEBread_hh(Form(
"lFEBread_iter%i_hh", buffIter),
";Read Time minus Event Time [ns];Read Event Time mod 840", 500, -2000.0, 14000.0, 210, 0, 35*24);
159 TH1D lFEBread_h(Form(
"lFEBread_iter%i_h", buffIter),
";Read Time minus Event Time [ns];Events / 8 ns", 500, -2000.0, 2000.0);
160 TH2D hFEBread_hh(Form(
"hFEBread_iter%i_hh", buffIter),
";Read Time minus Event Time [ns];Read Event Time mod 840", 500, -2000.0, 14000.0, 210, 0, 35*24);
161 TH1D hFEBread_h(Form(
"hFEBread_iter%i_h", buffIter),
";Read Time minus Event Time [ns];Events / 8 ns", 500, -2000.0, 2000.0);
164 for (
int iEv = 0; iEv <
hitMultis.size(); iEv++)
169 long trigSyncTime = trigArrT + (35*24 - (trigArrT+
syncPhase_)%(35*24));
172 for (
int ir =
reads.size() - 1; ir >= 0; ir--)
174 if (
reads[ir] < evTime - 840 )
180 int buffNstart =
reads.size();
182 for (
int ss = 0; ss < 6; ss++)
193 reads.push_back(trigSyncTime);
196 else if (
reads[
reads.size()-1] + 3360 > trigSyncTime)
203 reads.push_back(trigSyncTime);
212 lFEBread_h.Fill(
reads[0] - evTime);
213 lFEBread_hh.Fill(
reads[0] - evTime,
readEvs[0]%(24*35) );
217 hFEBread_h.Fill(
reads[0] - evTime);
218 hFEBread_hh.Fill(
reads[0] - evTime,
readEvs[0]%(24*35) );
221 lFEBrms[buffIter/4] = lFEBread_h.GetRMS();
222 lLowCut = lFEBread_h.GetXaxis()->GetBinCenter(lFEBread_h.FindFirstBinAbove(5.0)) - 28.0;
223 lHighCut = lFEBread_h.GetXaxis()->GetBinCenter(lFEBread_h.FindLastBinAbove(5.0)) + 28.0;
224 hFEBrms[buffIter/4] = hFEBread_h.GetRMS();
225 hLowCut = hFEBread_h.GetXaxis()->GetBinCenter(hFEBread_h.FindFirstBinAbove(5.0)) - 12.0;
226 hHighCut = hFEBread_h.GetXaxis()->GetBinCenter(hFEBread_h.FindLastBinAbove(5.0)) + 12.0;
227 sps[buffIter/4] = (double)buffIter;