60 gStyle->SetFitFormat(
"5.3f");
64 FairRunAna* fRunAna =
new FairRunAna();
67 fRunAna->SetField(magField);
70 vector<TString> listOfFiles;
77 listOfFiles.push_back(
"../run/srcdst_3387.root");
91 const Int_t nFiles = listOfFiles.size();
92 TString namesDet[nDet] = {
"CSC",
"DCH1",
"TOF-700",
"DCH2"};
98 listOfHistoWithoutDet[
i]->Sumw2();
99 listOfHistoWithDet[
i]->Sumw2();
100 listOfHistoEff[
i]->Divide(listOfHistoWithDet[
i], listOfHistoWithoutDet[
i]);
101 listOfHistoEff[
i]->Scale(100);
102 listOfHistoEff[
i]->SetMaximum(110);
103 listOfHistoEff[
i]->SetMinimum(0);
104 listOfHistoWithoutDetXY[
i]->Sumw2();
105 listOfHistoWithDetXY[
i]->Sumw2();
106 listOfHistoEffXY[
i]->Divide(listOfHistoWithDetXY[
i], listOfHistoWithoutDetXY[
i]);
111 TCanvas* cMomWithoutDet =
new TCanvas(
"cMomWithoutDet",
"cMomWithoutDet", 1000, 1000);
112 cMomWithoutDet->
Divide(2, 2, 0, 0);
113 TCanvas* cMomWithDet =
new TCanvas(
"cMomWithDet",
"cMomWithDet", 1000, 1000);
114 cMomWithDet->
Divide(2, 2, 0, 0);
124 cMomWithoutDet->
cd(
i + 1);
125 listOfHistoWithoutDet[
i]->SetMarkerStyle(19);
126 listOfHistoWithoutDet[
i]->SetMarkerSize(1.2);
128 listOfHistoWithoutDet[
i]->Draw(
"X0 E1 P");
130 listOfHistoWithDet[
i]->SetMarkerStyle(19);
131 listOfHistoWithDet[
i]->SetMarkerSize(1.2);
132 listOfHistoWithDet[
i]->SetLineColor(1);
133 listOfHistoWithDet[
i]->Draw(
"X0 E1 P");
135 listOfHistoEff[
i]->SetMarkerStyle(19);
136 listOfHistoEff[
i]->SetMarkerSize(1.2);
137 listOfHistoEff[
i]->SetLineColor(1);
138 listOfHistoEff[
i]->Draw(
"X0 E1 P");
141 listOfHistoResX[
i]->Fit(
"gaus",
"WWQ");
142 listOfHistoResX[
i]->Draw();
145 listOfHistoResY[
i]->Fit(
"gaus",
"WWQ");
146 listOfHistoResY[
i]->Draw();
149 listOfHistoPullX[
i]->Fit(
"gaus",
"WWQ");
150 listOfHistoPullX[
i]->Draw();
153 listOfHistoPullY[
i]->Fit(
"gaus",
"WWQ");
154 listOfHistoPullY[
i]->Draw();
157 listOfHistoEffXY[
i]->Draw(
"colz");
160 cMomWithoutDet->
SaveAs(
"matchingMomWithoutSRC.pdf");
161 cMomWithDet->
SaveAs(
"matchingMomWithSRC.pdf");
162 cEff->
SaveAs(
"matchingEffSRC.pdf");
163 cEffXY->
SaveAs(
"matchingEffSRCXY.pdf");
164 cRes->
SaveAs(
"matchingResSRC.pdf");
165 cPull->
SaveAs(
"matchingPullSRC.pdf");
172 cout <<
"File processed: " << fileName << endl;
173 cout <<
"Number of recorded entries = " << out->
GetEntries() << endl;
189 if (iEv % 10000 == 0)
190 printf(
"event: %d\n", iEv);
201 hAllNoCSC->Fill(1.0 / parLastCSC.GetQp());
202 hAllNoCSCXY->Fill(parLastCSC.GetX(), parLastCSC.GetY());
203 if (hit !=
nullptr) {
205 hAllYesCSCXY->Fill(parLastCSC.GetX(), parLastCSC.GetY());
206 hResXCSC->Fill(parLastCSC.GetX() - hit->GetX());
207 hResYCSC->Fill(parLastCSC.GetY() - hit->GetY());
208 hPullXCSC->Fill((parLastCSC.GetX() - hit->GetX()) / hit->GetDx());
209 hPullYCSC->Fill((parLastCSC.GetY() - hit->GetY()) / hit->GetDy());
220 hAllNoDCH1XY->Fill(parLastDCH1.GetX(), parLastDCH1.GetY());
221 if (hit !=
nullptr) {
224 hResXDCH1->Fill(parLastDCH1.GetX() - hit->GetX());
225 hResYDCH1->Fill(parLastDCH1.GetY() - hit->GetY());
226 hPullXDCH1->Fill((parLastDCH1.GetX() - hit->GetX()) / hit->GetDx());
227 hPullYDCH1->Fill((parLastDCH1.GetY() - hit->GetY()) / hit->GetDy());
239 if (hit !=
nullptr) {
242 hResXTOF700->Fill(parLastTOF700.GetX() - hit->GetX());
243 hResYTOF700->Fill(parLastTOF700.GetY() - hit->GetY());
244 hPullXTOF700->Fill((parLastTOF700.GetX() - hit->GetX()) / hit->GetDx());
245 hPullYTOF700->Fill((parLastTOF700.GetY() - hit->GetY()) / hit->GetDy());
256 hAllNoDCH2XY->Fill(parLastDCH2.GetX(), parLastDCH2.GetY());
257 if (hit !=
nullptr) {
260 hResXDCH2->Fill(parLastDCH2.GetX() - hit->GetX());
261 hResYDCH2->Fill(parLastDCH2.GetY() - hit->GetY());
262 hPullXDCH2->Fill((parLastDCH2.GetX() - hit->GetX()) / hit->GetDx());
263 hPullYDCH2->Fill((parLastDCH2.GetY() - hit->GetY()) / hit->GetDy());
321 FairTrackParam minPar;
332 map<Double_t, FairTrackParam> zParamMap;
339 minZ = Min(minZ, hit->GetZ());
340 zParamMap[hit->GetZ()] = FairTrackParam();
342 FairTrackParam par(*parTrack);
345 for (map<Double_t, FairTrackParam>::iterator it = zParamMap.begin(); it != zParamMap.end(); ++it) {
356 if (zParamMap.find(hit->GetZ()) == zParamMap.end()) {
357 std::cout <<
"-E- CbmLitNearestHitTofMerger::DoMerge: Z position " << hit->GetZ()
358 <<
" not found in map. Something is wrong.\n";
360 FairTrackParam tpar(zParamMap[hit->GetZ()]);
361 Double_t dX = tpar.GetX() - hit->GetX();
362 Double_t dY = tpar.GetY() - hit->GetY();
363 if (Abs(dX) < xCut && Abs(dY) < yCut && Abs(dX) < minDX && Abs(dY) < minDY) {
374 *(parTrack) = minPar;
377 kalman->
Update(parTrack, minHit, chi);
virtual void SetTextSize(Float_t tsize=1)