21 #include "FairLogger.h"
22 #include "FairMCEventHeader.h"
23 #include "FairRootManager.h"
24 #include "FairRunAna.h"
25 #include "FairRuntimeDb.h"
28 #include "Riostream.h"
29 #include "TClonesArray.h"
35 #include "TProfile2D.h"
100 : FairTask(
"CbmTofGeometryQa")
111 , fMCEventHeader(NULL)
112 , fTofPointsColl(NULL)
113 , fMcTracksColl(NULL)
114 , fRealTofPointsColl(NULL)
115 , fRealTofMatchColl(NULL)
116 , fbRealPointAvail(kFALSE)
117 , fsHistoOutFilename(
"./tofQa.hst.root")
119 , fbCentDepOn(kFALSE)
120 , fvhTrackAllStartZCent()
122 fvhTrackSecStartZCent()
124 fvhTrackAllStartXZCent()
126 fvhTofPntAllAngCent()
142 fhTrackMapAngPrimAll(NULL)
144 fhTrackMapAngPrimSts(NULL)
146 fhTrackMapAngPrimRich(NULL)
148 fhTrackMapAngPrimMuch(NULL)
150 fhTrackMapAngPrimTrd(NULL)
152 fhTrackMapAngPrimTof(NULL)
157 , fhPointMapAng(NULL)
158 , fhPointMapSph(NULL)
159 , fhRealPointMapXY(NULL)
160 , fhRealPointMapXZ(NULL)
161 , fhRealPointMapYZ(NULL)
162 , fhRealPointMapAng(NULL)
163 , fhRealPointMapSph(NULL)
164 , fhPointMapAngWithSts(NULL)
165 , fhPointMapAngWithRich(NULL)
166 , fhPointMapAngWithMuch(NULL)
167 , fhPointMapAngWithTrd(NULL)
169 , fhPointSphAprRadiusErrMapXY(NULL)
170 , fhPointSphAprRadiusErrMapXZ(NULL)
171 , fhPointSphAprRadiusErrMapYZ(NULL)
172 , fhPointSphAprRadiusErrMapAng(NULL)
173 , fhPointSphAprRadiusErrMapSph(NULL)
174 , fhPointSphAprZposErrMapXY(NULL)
175 , fhPointSphAprZposErrMapXZ(NULL)
176 , fhPointSphAprZposErrMapYZ(NULL)
177 , fhPointSphAprZposErrMapAng(NULL)
178 , fhPointSphAprZposErrMapSph(NULL)
182 , fvhPtmRapSecGenTrk()
183 , fvhPtmRapSecStsPnt()
184 , fvhPtmRapSecTofPnt()
191 , fvhPtmRapGenTrkTofPnt()
192 , fvhPlabGenTrkTofPnt()
193 , fvhPlabStsTrkTofPnt()
194 , fvhPtmRapSecGenTrkTofPnt()
195 , fvhPlabSecGenTrkTofPnt()
196 , fvhPlabSecStsTrkTofPnt() {
197 cout <<
"CbmTofGeometryQa: Task started " << endl;
203 : FairTask(name, verbose)
214 , fMCEventHeader(NULL)
215 , fTofPointsColl(NULL)
216 , fMcTracksColl(NULL)
217 , fRealTofPointsColl(NULL)
218 , fRealTofMatchColl(NULL)
219 , fbRealPointAvail(kFALSE)
220 , fsHistoOutFilename(
"./tofQa.hst.root")
222 , fbCentDepOn(kFALSE)
223 , fvhTrackAllStartZCent()
225 fvhTrackSecStartZCent()
227 fvhTrackAllStartXZCent()
229 fvhTofPntAllAngCent()
245 fhTrackMapAngPrimAll(NULL)
247 fhTrackMapAngPrimSts(NULL)
249 fhTrackMapAngPrimRich(NULL)
251 fhTrackMapAngPrimMuch(NULL)
253 fhTrackMapAngPrimTrd(NULL)
255 fhTrackMapAngPrimTof(NULL)
260 , fhPointMapAng(NULL)
261 , fhPointMapSph(NULL)
262 , fhRealPointMapXY(NULL)
263 , fhRealPointMapXZ(NULL)
264 , fhRealPointMapYZ(NULL)
265 , fhRealPointMapAng(NULL)
266 , fhRealPointMapSph(NULL)
267 , fhPointMapAngWithSts(NULL)
268 , fhPointMapAngWithRich(NULL)
269 , fhPointMapAngWithMuch(NULL)
270 , fhPointMapAngWithTrd(NULL)
272 , fhPointSphAprRadiusErrMapXY(NULL)
273 , fhPointSphAprRadiusErrMapXZ(NULL)
274 , fhPointSphAprRadiusErrMapYZ(NULL)
275 , fhPointSphAprRadiusErrMapAng(NULL)
276 , fhPointSphAprRadiusErrMapSph(NULL)
277 , fhPointSphAprZposErrMapXY(NULL)
278 , fhPointSphAprZposErrMapXZ(NULL)
279 , fhPointSphAprZposErrMapYZ(NULL)
280 , fhPointSphAprZposErrMapAng(NULL)
281 , fhPointSphAprZposErrMapSph(NULL)
285 , fvhPtmRapSecGenTrk()
286 , fvhPtmRapSecStsPnt()
287 , fvhPtmRapSecTofPnt()
294 , fvhPtmRapGenTrkTofPnt()
295 , fvhPlabGenTrkTofPnt()
296 , fvhPlabStsTrkTofPnt()
297 , fvhPtmRapSecGenTrkTofPnt()
298 , fvhPlabSecGenTrkTofPnt()
299 , fvhPlabSecStsTrkTofPnt() {}
313 Bool_t isSimulation = kFALSE;
315 LOG(info) <<
"CbmTofGeometryQa::Init with GeoVersion " << iGeoVersion;
317 if (
k12b > iGeoVersion) {
318 LOG(error) <<
"CbmTofGeometryQa::Init => Only compatible with geometries "
324 LOG(info) <<
"CbmTofGeometryQa::Init with GeoVersion "
327 switch (iGeoVersion) {
331 LOG(error) <<
"CbmTofGeometryQa::Init => Invalid geometry!!!"
345 LOG(info) <<
" CbmTofGeometryQa => Get the digi parameters for tof";
357 LOG(debug) <<
" CbmTofGeometryQa => New event";
362 LOG(info) <<
"CbmTofGeometryQa::Exec : "
363 <<
"event " <<
fEvents <<
" processed." << endl;
370 cout <<
"CbmTofGeometryQa::Finish up with " <<
fEvents <<
" analyzed events "
381 FairRootManager* fManager = FairRootManager::Instance();
383 fMCEventHeader = (FairMCEventHeader*) fManager->GetObject(
"MCEventHeader.");
385 LOG(error) <<
"CbmTofGeometryQa::RegisterInputs => Could not get the "
386 "MCEventHeader object!!!";
392 LOG(error) <<
"CbmTofGeometryQa::RegisterInputs => Could not get the "
393 "TofPoint TClonesArray!!!";
397 fMcTracksColl = (TClonesArray*) fManager->GetObject(
"MCTrack");
399 LOG(error) <<
"CbmTofGeometryQa::RegisterInputs => Could not get the "
400 "MCTrack TClonesArray!!!";
409 <<
"CbmTofGeometryQa::RegisterInputs => Both fRealTofPointsColl & "
410 "fRealTofMatchColl there, realistic mean TOF MC point used for QA";
467 <<
"CbmTofGeometryQa::SetWallPosZ => Change histograms center on Z axis to "
468 << dWallPosCm <<
" cm";
493 Double_t xrange = 750.;
494 Double_t yrange = 500.;
499 Int_t iNbBinThetaX = 1200;
500 Double_t dThetaXMin = -60.0;
501 Double_t dThetaXMax = 60.0;
502 Int_t iNbBinThetaY = 900;
503 Double_t dThetaYMin = -45.0;
504 Double_t dThetaYMax = 45.0;
506 Int_t iNbBinTheta = 180;
507 Double_t dThetaMin = 0;
508 Double_t dThetaMax =
TMath::Pi() * 90 / 180;
509 Int_t iNbBinPhi = 180;
515 Int_t iNbBinsStartZ = 1250;
516 Double_t dMinStartZ = -50.0;
517 Double_t dMaxStartZ = 1200.0;
518 Int_t iNbBinsStartXY = 1200;
519 Double_t dMinStartXY = -600.0;
520 Double_t dMaxStartXY = 600.0;
521 Int_t iNbBinsCentr = 16;
522 Double_t dNbMinCentr = 0.0;
523 Double_t dNbMaxCentr = 16.0;
533 for (Int_t iPartIdx = 0; iPartIdx <
kiNbPart; iPartIdx++) {
537 Form(
"TofTests_TrackAllStartZCent_%s",
ksPartTag[iPartIdx].Data()),
538 Form(
"Centrality vs Start Z distribution for MC tracks w/ TOF Pnt, %s, "
539 "all tracks; Start Z [cm]; B [fm]; # []",
548 Form(
"TofTests_TrackSecStartZCent_%s",
ksPartTag[iPartIdx].Data()),
549 Form(
"Centrality vs Start Z distribution for MC tracks w/ TOF Pnt, %s, "
550 "secondary tracks; Start Z [cm]; B [fm]; # []",
560 Form(
"TofTests_TrackAllStartXZCent_%s",
ksPartTag[iPartIdx].Data()),
561 Form(
"Centrality vs Start Z distribution for MC tracks w/ TOF Pnt, "
562 "%s, all tracks; Start X [cm]; Start Z [cm]; B [fm];",
574 Form(
"TofTests_TofPntAllAngCent_%s",
ksPartTag[iPartIdx].Data()),
575 Form(
"Centrality vs Angular position of TOF Pnt, %s, all tracks; "
576 "#theta_{x}[Deg.]; #theta_{y}[Deg.]; B [fm];",
589 new TH2D(Form(
"TofTests_TrackAllStartXZ_%s",
ksPartTag[iPartIdx].Data()),
590 Form(
"Start X vs Z distribution for MC tracks w/ TOF Pnt, %s, "
591 "all tracks; Start Z [cm]; Start X [cm]; # []",
600 new TH2D(Form(
"TofTests_TrackAllStartYZ_%s",
ksPartTag[iPartIdx].Data()),
601 Form(
"Start Y vs Z distribution for MC tracks w/ TOF Pnt, %s, "
602 "all tracks; Start Z [cm]; Start Y [cm]; # []",
614 "TofTests_TracksMapXY",
615 "Position of the MC Tracks assuming along Z axis; X[cm]; Y[cm]; # [Tracks]",
623 "TofTests_TracksMapXZ",
624 "Position of the MC Tracks assuming along Z axis; X[cm]; Z[cm]; # [Tracks]",
632 "TofTests_TracksMapYZ",
633 "Position of the MC Tracks assuming along Z axis; Y[cm]; Z[cm]; # [Tracks]",
641 "Position of the MC Tracks assuming from origin; "
642 "#theta_{x}[Deg.]; #theta_{y}[Deg.]; # [Tracks]",
650 "Position of the MC Tracks assuming from origin; "
651 "#theta[rad.]; #phi[rad.]; # [Tracks]",
660 new TH2D(
"TofTests_TracksMapAngPrimAll",
661 "Position of the MC Tracks assuming from origin, primary only; "
662 "#theta_{x}[Deg.]; #theta_{y}[Deg.]; # [Tracks]",
670 new TH2D(
"TofTests_TracksMapAngPrimSts",
671 "Position of the MC Tracks w/ STS Pnts assuming from origin, "
672 "primary only; #theta_{x}[Deg.]; #theta_{y}[Deg.]; # [Tracks]",
680 new TH2D(
"TofTests_TracksMapAngPrimRich",
681 "Position of the MC Tracks w/ RICH Pnts assuming from origin, "
682 "primary only; #theta_{x}[Deg.]; #theta_{y}[Deg.]; # [Tracks]",
690 new TH2D(
"TofTests_TracksMapAngPrimMuch",
691 "Position of the MC Tracks w/ MUCH Pnts assuming from origin, "
692 "primary only; #theta_{x}[Deg.]; #theta_{y}[Deg.]; # [Tracks]",
700 new TH2D(
"TofTests_TracksMapAngPrimTrd",
701 "Position of the MC Tracks w/ TRD Pnts assuming from origin, "
702 "primary only; #theta_{x}[Deg.]; #theta_{y}[Deg.]; # [Tracks]",
710 new TH2D(
"TofTests_TracksMapAngPrimTof",
711 "Position of the MC Tracks w/ TOF Pnts assuming from origin, "
712 "primary only; #theta_{x}[Deg.]; #theta_{y}[Deg.]; # [Tracks]",
721 new TH2D(
"TofTests_PointsMapXY",
722 "Position of the Tof Points; X[cm]; Y[cm]; # [Points]",
730 new TH2D(
"TofTests_PointsMapXZ",
731 "Position of the Tof Points; X[cm]; Z[cm]; # [Points]",
739 new TH2D(
"TofTests_PointsMapYZ",
740 "Position of the Tof Points; Y[cm]; Z[cm]; # [Points]",
748 "Position of the Tof Points; #theta_{x}[Deg.]; "
749 "#theta_{y}[Deg.]; # [Points]",
757 new TH2D(
"TofTests_PointsMapSph",
758 "Position of the Tof Points; #theta[rad.]; #phi[rad.]; # [Points]",
767 "TofTests_RealPointsMapXY",
768 "Position of the Tof Points (mean o/ gaps); X[cm]; Y[cm]; # [Points]",
776 "TofTests_RealPointsMapXZ",
777 "Position of the Tof Points (mean o/ gaps); X[cm]; Z[cm]; # [Points]",
785 "TofTests_RealPointsMapYZ",
786 "Position of the Tof Points (mean o/ gaps); Y[cm]; Z[cm]; # [Points]",
794 "Position of the Tof Points (mean o/ gaps); "
795 "#theta_{x}[Deg.]; #theta_{y}[Deg.]; # [Points]",
803 "Position of the Tof Points (mean o/ gaps); "
804 "#theta[rad.]; #phi[rad.]; # [Points]",
813 new TH2D(
"TofTests_PointsMapAngWithSts",
814 "Position of the Tof Points with enough STS points in Track; "
815 "#theta_{x}[Deg.]; #theta_{y}[Deg.]; # [Points]",
823 new TH2D(
"TofTests_PointsMapAngWithRich",
824 "Position of the Tof Points with RICH points in Track; "
825 "#theta_{x}[Deg.]; #theta_{y}[Deg.]; # [Points]",
833 new TH2D(
"TofTests_PointsMapAngWithMuch",
834 "Position of the Tof Points with enough MUCH points in Track; "
835 "#theta_{x}[Deg.]; #theta_{y}[Deg.]; # [Points]",
843 new TH2D(
"TofTests_PointsMapAngWithTrd",
844 "Position of the Tof Points with TRD points in Track; "
845 "#theta_{x}[Deg.]; #theta_{y}[Deg.]; # [Points]",
857 new TProfile2D(
"TofTests_PointSphAprRadiusErrMapXY",
858 "Radius error (distance from target) in spherical approx. "
859 "(mean o/ gaps); X[cm]; Y[cm]; Rp - Rwall [cm]",
867 new TProfile2D(
"TofTests_PointSphAprRadiusErrMapXZ",
868 "Radius error (distance from target) in spherical approx. "
869 "(mean o/ gaps); X[cm]; Z[cm]; Rp - Rwall [cm]",
877 new TProfile2D(
"TofTests_PointSphAprRadiusErrMapYZ",
878 "Radius error (distance from target) in spherical approx. "
879 "(mean o/ gaps); Y[cm]; Z[cm]; Rp - Rwall [cm]",
887 "TofTests_PointSphAprRadiusErrMapAng",
888 "Radius error (distance from target) in spherical approx. (mean o/ "
889 "gaps); #theta_{x}[Deg.]; #theta_{y}[Deg.]; Rp - Rwall [cm]",
897 "TofTests_PointSphAprRadiusErrMapSph",
898 "Radius error (distance from target) in spherical approx. (mean o/ "
899 "gaps); #theta[rad.]; #phi[rad.]; Rp - Rwall [cm]",
908 new TProfile2D(
"TofTests_PointSphAprZposErrMapXY",
909 "Z Position error of the Tof Points in spherical approx. "
910 "(mean o/ gaps); X[cm]; Y[cm]; Zp - Zsph(X,Y) [cm]",
918 new TProfile2D(
"TofTests_PointSphAprZposErrMapXZ",
919 "Position of the Tof Points in spherical approx. (mean o/ "
920 "gaps); X[cm]; Z[cm]; Zp - Zsph(X,Y) [cm]",
928 new TProfile2D(
"TofTests_PointSphAprZposErrMapYZ",
929 "Position of the Tof Points in spherical approx. (mean o/ "
930 "gaps); Y[cm]; Z[cm]; Zp - Zsph(X,Y) [cm]",
938 "TofTests_PointSphAprZposErrMapAng",
939 "Position of the Tof Points in spherical approx. (mean o/ gaps); "
940 "#theta_{x}[Deg.]; #theta_{y}[Deg.]; Zp - Zsph(X,Y) [cm]",
948 new TProfile2D(
"TofTests_PointSphAprZposErrMapSph",
949 "Position of the Tof Points in spherical approx. (mean o/ "
950 "gaps); #theta[rad.]; #phi[rad.]; Zp - Zsph(X,Y) [cm]",
962 Double_t dMinY = -1.;
964 Int_t iNbBNinsPtm = 30;
965 Double_t dMinPtm = 0.0;
966 Double_t dMaxPtm = 2.5;
974 Int_t iNbBinsPlab = 100;
975 Double_t dMinPlab = 0.0;
976 Double_t dMaxPlab = 10.0;
990 for (Int_t iPartIdx = 0; iPartIdx <
kiNbPart; iPartIdx++) {
993 new TH2D(Form(
"TofTests_PtmRapGenTrk_%s",
ksPartTag[iPartIdx].Data()),
994 Form(
"P_{t}/M vs y distribution for MC tracks, %s, primary "
995 "tracks; y; P_{t}/M; # []",
1004 new TH2D(Form(
"TofTests_PtmRapStsPnt_%s",
ksPartTag[iPartIdx].Data()),
1005 Form(
"P_{t}/M vs y distribution from MC Track with STS points, "
1006 "%s, primary tracks; y; P_{t}/M; # []",
1015 new TH2D(Form(
"TofTests_PtmRapTofPnt_%s",
ksPartTag[iPartIdx].Data()),
1016 Form(
"P_{t}/M vs y distribution from MC Track for TOF points, "
1017 "%s, primary tracks; y; P_{t}/M; # []",
1027 new TH1D(Form(
"TofTests_PlabGenTrk_%s",
ksPartTag[iPartIdx].Data()),
1028 Form(
"P_{lab} distribution for MC tracks, %s, primary tracks; "
1029 "P_{lab} [GeV/c]; # []",
1035 new TH1D(Form(
"TofTests_PlabStsPnt_%s",
ksPartTag[iPartIdx].Data()),
1036 Form(
"P_{lab} distribution from MC Track with STS points, %s, "
1037 "primary tracks; P_{lab} [GeV/c]; # []",
1043 new TH1D(Form(
"TofTests_PlabTofPnt_%s",
ksPartTag[iPartIdx].Data()),
1044 Form(
"P_{lab} distribution from MC Track for TOF points, %s, "
1045 "primary tracks; P_{lab} [GeV/c]; # []",
1054 Form(
"TofTests_PtmRapGenTrkTofPnt_%s",
ksPartTag[iPartIdx].Data()),
1055 Form(
"P_{t}/M vs y distribution for MC tracks with TOF Point(s), %s, "
1056 "primary tracks; y; P_{t}/M; # []",
1066 new TH1D(Form(
"TofTests_PlabGenTrkTofPnt_%s",
ksPartTag[iPartIdx].Data()),
1067 Form(
"P_{lab} distribution for MC tracks with TOF Point(s), %s, "
1068 "primary tracks; P_{lab} [GeV/c]; # []",
1074 new TH1D(Form(
"TofTests_PlabStsTrkTofPnt_%s",
ksPartTag[iPartIdx].Data()),
1075 Form(
"P_{lab} distribution for MC tracks with STS and TOF "
1076 "Point(s), %s, primary tracks; P_{lab} [GeV/c]; # []",
1085 new TH2D(Form(
"TofTests_PtmRapSecGenTrk_%s",
ksPartTag[iPartIdx].Data()),
1086 Form(
"P_{t}/M vs y distribution for MC tracks, %s, secondary "
1087 "tracks; y; P_{t}/M; # []",
1096 new TH2D(Form(
"TofTests_PtmRapSecStsPnt_%s",
ksPartTag[iPartIdx].Data()),
1097 Form(
"P_{t}/M vs y distribution from MC Track with STS points, "
1098 "%s, secondary tracks; y; P_{t}/M; # []",
1107 new TH2D(Form(
"TofTests_PtmRapSecTofPnt_%s",
ksPartTag[iPartIdx].Data()),
1108 Form(
"P_{t}/M vs y distribution from MC Track for TOF points, "
1109 "%s, secondary tracks; y; P_{t}/M; # []",
1119 new TH1D(Form(
"TofTests_PlabSecGenTrk_%s",
ksPartTag[iPartIdx].Data()),
1120 Form(
"P_{lab} distribution for MC tracks, %s, secondary tracks; "
1121 "P_{lab} [GeV/c]; # []",
1127 new TH1D(Form(
"TofTests_PlabSecStsPnt_%s",
ksPartTag[iPartIdx].Data()),
1128 Form(
"P_{lab} distribution from MC Track with STS points, %s, "
1129 "secondary tracks; P_{lab} [GeV/c]; # []",
1135 new TH1D(Form(
"TofTests_PlabSecTofPnt_%s",
ksPartTag[iPartIdx].Data()),
1136 Form(
"P_{lab} distribution from MC Track for TOF points, %s, "
1137 "secondary tracks; P_{lab} [GeV/c]; # []",
1146 Form(
"TofTests_PtmRapSecGenTrkTofPnt_%s",
ksPartTag[iPartIdx].Data()),
1147 Form(
"P_{t}/M vs y distribution for MC tracks with TOF Point(s), %s, "
1148 "secondary tracks; y; P_{t}/M; # []",
1158 Form(
"TofTests_PlabSecGenTrkTofPnt_%s",
ksPartTag[iPartIdx].Data()),
1159 Form(
"P_{lab} distribution for MC tracks with TOF Point(s), %s, "
1160 "secondary tracks; P_{lab} [GeV/c]; # []",
1167 Form(
"TofTests_PlabSecStsTrkTofPnt_%s",
ksPartTag[iPartIdx].Data()),
1168 Form(
"P_{lab} distribution for MC tracks with STS and TOF Point(s), %s, "
1169 "secondary tracks; P_{lab} [GeV/c]; # []",
1189 Int_t iNbTracks, iNbTofPts, iNbTofRealPts;
1199 Int_t iNbTofTracks = 0;
1200 Int_t iNbTofTracksPrim = 0;
1201 std::vector<Bool_t> vbTrackHasHit(iNbTracks, kFALSE);
1204 for (Int_t iTrkInd = 0; iTrkInd < iNbTracks; iTrkInd++) {
1242 if (pMcTrk->
GetPz() == pMcTrk->
GetP()) {
1250 if (0 != pMcTrk->
GetPz()
1251 && ((0 != pMcTrk->
GetPx()) || (0 != pMcTrk->
GetPy()))) {
1281 if (0 != pMcTrk->
GetPz() && 0 != pMcTrk->
GetPx())
1283 TMath::ATan2(pMcTrk->
GetPy(), pMcTrk->
GetPx()));
1287 Int_t iPartIdx = -1;
1288 for (Int_t iPart = 0; iPart <
kiNbPart; iPart++)
1293 if (-1 == iPartIdx) iPartIdx = 0;
1364 for (Int_t iPntInd = 0; iPntInd < iNbTofPts; iPntInd++) {
1372 pTofPoint->Position(vPntPos);
1374 Double_t dX = vPntPos.X();
1375 Double_t dY = vPntPos.Y();
1376 Double_t dZ = vPntPos.Z();
1392 Double_t dThetaX = TMath::ATan2(dX, dZ) * 180.0 /
TMath::Pi();
1393 Double_t dThetaY = TMath::ATan2(dY, dZ) * 180.0 /
TMath::Pi();
1412 TMath::ATan2(TMath::Sqrt(dX * dX + dY * dY), dZ);
1413 Double_t dPhi = TMath::ATan2(dY, dX);
1419 Double_t dSphereRadius =
1421 Double_t dRadiusError =
1422 TMath::Sqrt(dX * dX + dY * dY + dZ * dZ) - dSphereRadius;
1431 - TMath::Sqrt(dX * dX + dY * dY)
1433 TMath::ASin(TMath::Sqrt(dX * dX + dY * dY) / dSphereRadius));
1443 Int_t iPartIdx = -1;
1444 for (Int_t iPart = 0; iPart <
kiNbPart; iPart++)
1449 if (-1 == iPartIdx) iPartIdx = 0;
1476 for (Int_t iPntInd = 0; iPntInd < iNbTofRealPts; iPntInd++) {
1488 pTofPoint->Position(vPntPos);
1490 Double_t dX = vPntPos.X();
1491 Double_t dY = vPntPos.Y();
1492 Double_t dZ = vPntPos.Z();
1498 Double_t dThetaX = TMath::ATan2(dX, dZ) * 180.0 /
TMath::Pi();
1499 Double_t dThetaY = TMath::ATan2(dY, dZ) * 180.0 /
TMath::Pi();
1502 Double_t dTheta = TMath::ATan2(TMath::Sqrt(dX * dX + dY * dY),
1504 Double_t dPhi = TMath::ATan2(dY, dX);
1521 TDirectory* oldir = gDirectory;
1526 TDirectory* cdGeomMap = fHist->mkdir(
"GeomMap");
1559 TDirectory* cdSphApprox = fHist->mkdir(
"SphApprox");
1575 TDirectory* cdStartZ = fHist->mkdir(
"StartZ");
1578 for (Int_t iPartIdx = 0; iPartIdx <
kiNbPart; iPartIdx++) {
1590 TDirectory* cdPhysMap = fHist->mkdir(
"PhysMap");
1593 for (Int_t iPartIdx = 0; iPartIdx <
kiNbPart; iPartIdx++) {
1608 TDirectory* cdPhysMapSec = fHist->mkdir(
"PhysMapSec");
1611 for (Int_t iPartIdx = 0; iPartIdx <
kiNbPart; iPartIdx++) {
1628 gDirectory->cd(oldir->GetPath());
1637 for (Int_t iPartIdx = 0; iPartIdx <
kiNbPart; iPartIdx++) {
1700 for (Int_t iPartIdx = 0; iPartIdx <
kiNbPart; iPartIdx++) {