43 gROOT->LoadMacro(
"$VMCWORKDIR/macro/run/bmnloadlibs.C");
50 TString NameCallFile =
"Tof400LRcorr.dat";
51 f_call.open(NameCallFile.
Data());
52 f_call.getline(line, 256);
53 f_call.getline(line, 256);
54 while (!f_call.eof()) {
55 f_call >> Pl >> St >> Temp >>
CorrLR[Pl][St];
64 name =
Form(
"Plane%d",
i);
75 TH1I* h_dtBDT0 =
new TH1I(
"h_dtBDT0",
"h_dtBDT0", 1024, -24, 24);
77 TH2F* h_dtBDT0_vs_AmpT0 =
new TH2F(
"h_dtBDT0_vs_AmpT0",
"h_dtBDT0_vs_AmpT0", 1024, 0, 48, 1024, -24, 24);
78 fList->
Add(h_dtBDT0_vs_AmpT0);
79 TH2F* h_dtBDT0_vs_AmpBD =
new TH2F(
"h_dtBDT0_vs_AmpBD",
"h_dtBDT0_vs_AmpBD", 1024, 0, 48, 1024, -24, 24);
80 fList->
Add(h_dtBDT0_vs_AmpBD);
81 TH2F* h_TimeBD_vs_TimeT0 =
new TH2F(
"h_TimeBD_vs_TimeT0",
"h_TimeBD_vs_TimeT0", 680, 250, 420, 680, 250, 420);
82 fList->
Add(h_TimeBD_vs_TimeT0);
83 TH1I* h_dtBDT0_Mod =
new TH1I(
"h_dtBDT0_Mod",
"h_dtBDT0_Mod", 1024, -24, 24);
84 fList->
Add(h_dtBDT0_Mod);
85 TH1I* h_NHitBD =
new TH1I(
"h_NHitBD",
"h_NHitBD", 40, 0, 40);
88 TH1I* h_dtBC2T0 =
new TH1I(
"h_dtBC2T0",
"h_dtBC2T0", 1024, -6., 6.);
89 fList->
Add(h_dtBC2T0);
90 TH2F* h_dtBC2T0_vs_AmpT0 =
new TH2F(
"h_dtBC2T0_vs_AmpT0",
"h_dtBC2T0_vs_AmpT0", 1024, 0, 48, 1024, -12., 12.);
91 fList->
Add(h_dtBC2T0_vs_AmpT0);
92 TH2F* h_dtBC2T0_vs_AmpBC2 =
new TH2F(
"h_dtBC2T0_vs_AmpBC2",
"h_dtBC2T0_vs_AmpBC2", 1024, 0, 48, 1024, -12., 12.);
93 fList->
Add(h_dtBC2T0_vs_AmpBC2);
94 TH2F* h_TimeBC2_vs_TimeT0 =
new TH2F(
"h_TimeBC2_vs_TimeT0",
"h_TimeBC2_vs_TimeT0", 680, 250, 420, 680, 250, 420);
95 fList->
Add(h_TimeBC2_vs_TimeT0);
96 TH1I* h_dtBC2T0_Corr =
new TH1I(
"h_dtBC2T0_Corr",
"h_dtBC2T0_Corr", 1024, -6., 6.);
97 fList->
Add(h_dtBC2T0_Corr);
99 TH2I* hCrosing =
new TH2I(
"hCrosing",
"hCrosing", 48, 0, 48, 48, 0, 48);
100 fList->
Add(hCrosing);
101 TH1I* hCrosingDx =
new TH1I(
"hCrosingDx",
"hCrosingDx", 48, 0., 60.);
102 fList->
Add(hCrosingDx);
103 TH1I* hCrosingDy =
new TH1I(
"hCrosingDy",
"hCrosingDy", 120, -30., 30.);
104 fList->
Add(hCrosingDy);
105 TH1I* hCrosingDr =
new TH1I(
"hCrosingDr",
"hCrosingDr", 600, 0., 60.);
106 fList->
Add(hCrosingDr);
107 TH1I* hCrosingDt =
new TH1I(
"hCrosingDt",
"hCrosingDt", 1024, -12., 12.);
108 fList->
Add(hCrosingDt);
109 TH2I* hCrosingWidth_Width =
new TH2I(
"hCrosingWidth_Width",
"hCrosingWidth_Width", 1024, 12, 60, 1024, 12, 60);
110 fList->
Add(hCrosingWidth_Width);
111 TH1I* hCrosingDwidth =
new TH1I(
"hCrosingDwidth",
"hCrosingDwidth", 512, -12., 12.);
112 fList->
Add(hCrosingDwidth);
114 TH2F* h_HitRPC =
new TH2F(
"h_HitRPC",
"h_HitRPC", 96, -96, 0, 5, 0, 5);
115 fListTof->
Add(h_HitRPC);
117 TH2F* h_XYRPC =
new TH2F(
"h_XYRPC",
"h_XYRPC", 240, -150, 150, 120, -75, 75);
118 fListTof->
Add(h_XYRPC);
121 TString inName =
Form(
"/home/storage/digi/%s", file.Data());
123 cout <<
"Open file " << inName << endl << endl;
124 eveTree->
Add(inName);
145 if (nEvForRead == 0 || nEvForRead > nEvents)
146 nEvForRead = nEvents;
147 cout <<
"Will be readed " << nEvForRead <<
" events from " << nEvents << endl;
149 for (
Int_t iEv = 0; iEv < nEvForRead; iEv++) {
151 if (iEv % 50000 == 0)
152 cout <<
"EVENT: " << iEv << endl;
160 if (digT0->
GetAmp() >= 17.3 && digT0->
GetAmp() <= 19.2) {
168 Int_t iEvDig = EventHeader->GetEntriesFast();
170 cout <<
"iEvDig == " << iEvDig << endl;
198 Plane[
i]->FindHits(digT0);
199 for (
Int_t s = 0; s < 47; s++) {
205 h_XYRPC->
Fill(XYZ.
x(), XYZ.
y());
208 CrossingDet(Plane[2], Plane[7], hCrosing, hCrosingDx, hCrosingDy, hCrosingDr, hCrosingDt);
226 h_dtBDT0->
Fill(dtBDT0);
227 h_dtBDT0_vs_AmpT0->
Fill(digT0->
GetAmp(), dtBDT0);
232 if (digBC2->
GetAmp() >= 16.2 && digBC2->
GetAmp() <= 19.3) {
235 h_dtBC2T0_Corr->
Fill(dtBC2T0);
236 h_dtBC2T0_vs_AmpT0->
Fill(digT0->
GetAmp(), dtBC2T0);
237 h_dtBC2T0_vs_AmpBC2->
Fill(digBC2->
GetAmp(), dtBC2T0);
246 cout <<
"End Data Analysis" << endl;
249 cout <<
"Readed " << nEvForRead <<
" events" << endl;
250 cout <<
"Time = " << timer.
RealTime() <<
" s" << endl;
251 cout <<
"Time/Event = " << timer.
RealTime() / (
Double_t)nEvForRead * 1000. <<
" ms/Event" << endl;
252 cout <<
"TimeCPU = " << timer.
CpuTime() <<
" s" << endl;
253 cout <<
"TimeCPU/Event = " << timer.
CpuTime() / (
Double_t)nEvForRead * 1000. <<
" ms/Event" << endl;
256 TString NameTimeFile =
"Tof400An_Time.dat";
260 cout <<
"Write time to " << NameTimeFile.
Data() << endl;
261 f_time.open(NameTimeFile.
Data(), std::ofstream::out | std::ofstream::app);
270 outName.
Replace(Point, 15,
"_TofAn6.root");
271 outName =
Form(
"/home/storage/analysis/%s", outName.
Data());
272 cout <<
"Save data to " << outName.
Data() << endl;
276 Dir = fileout->
mkdir(
"ToF");
287 Dir1Plane[
i] = DirPlane[
i]->
mkdir(
"Detector");
290 Dir2Plane[
i] = DirPlane[
i]->
mkdir(
"ToF");
301 cout <<
"Time for write root = " << timer.
RealTime() <<
" s" << endl;
void CrossingDet(BmnTOF1Detector *Det1, BmnTOF1Detector *Det2, TH2 *hD1D2, TH1 *hDx, TH1 *hDy, TH1 *hDr, TH1 *hDt)