7 cout <<
"WARNING: REQUESTED HISTOGRAM OF KINEMAITIC FIT RESULTS WHEN NO KINEMATIC FIT!!!" << endl;
11 vector<const DParticleID*> locParticleIDs;
12 locEventLoop->Get(locParticleIDs);
14 string locHistName, locHistTitle, locStepName, locStepROOTName, locParticleName, locParticleROOTName;
62 japp->RootWriteLock();
69 locHistName =
"DeltaT_RFBeamBunch";
74 bool locBeamParticleUsed = (locPID ==
Gamma);
75 if(locBeamParticleUsed)
82 locHistName =
string(
"DeltaPOverP");
83 locHistTitle = locParticleROOTName +
string(
";#Deltap/p (Reconstructed - Thrown)");
87 locHistName =
string(
"DeltaPOverPVsP");
88 locHistTitle = locParticleROOTName +
string(
";p (GeV/c);#Deltap/p (Reconstructed - Thrown)");
92 locHistName =
string(
"DeltaT");
93 locHistTitle = locParticleROOTName +
string(
";#Deltat (ns) (Reconstructed - Thrown)");
99 deque<string> locPullNames(8,
"");
100 locPullNames[0] =
"E"; locPullNames[1] =
"Px"; locPullNames[2] =
"Py"; locPullNames[3] =
"Pz";
101 locPullNames[4] =
"Xx"; locPullNames[5] =
"Xy"; locPullNames[6] =
"Xz"; locPullNames[7] =
"T";
103 deque<string> locPullTitles(8,
"");
104 locPullTitles[0] =
"E"; locPullTitles[1] =
"p_{x}"; locPullTitles[2] =
"p_{y}"; locPullTitles[3] =
"p_{z}";
105 locPullTitles[4] =
"x_{x}"; locPullTitles[5] =
"x_{y}"; locPullTitles[6] =
"x_{z}"; locPullTitles[7] =
"t";
108 deque<Particle_t> locPIDs;
109 for(
size_t loc_i = 0; loc_i < locNumSteps; ++loc_i)
121 if((!locBeamParticleUsed) || (loc_i != 0))
122 locPIDs.insert(locPIDs.begin(), locInitialPID);
128 for(
size_t loc_j = 0; loc_j < locPIDs.size(); ++loc_j)
130 locPID = locPIDs[loc_j];
139 locHistName =
string(
"DeltaPOverP");
140 locHistTitle = locParticleROOTName +
string(
";#Deltap/p (Reconstructed - Thrown)");
144 locHistName =
string(
"DeltaTheta");
145 locHistTitle = locParticleROOTName +
string(
";#Delta#theta#circ (Reconstructed - Thrown)");
149 locHistName =
string(
"DeltaPhi");
150 locHistTitle = locParticleROOTName +
string(
";#Delta#phi#circ (Reconstructed - Thrown)");
154 locHistName =
string(
"DeltaT");
155 locHistTitle = locParticleROOTName +
string(
";#Deltat (ns) (Reconstructed - Thrown)");
159 locHistName =
string(
"DeltaT_BCAL");
160 locHistTitle = locParticleROOTName +
string(
" in BCAL;#Deltat (ns) (Reconstructed - Thrown)");
166 locHistName =
string(
"DeltaT_TOF");
167 locHistTitle = locParticleROOTName +
string(
" in TOF;#Deltat (ns) (Reconstructed - Thrown)");
174 locHistName =
string(
"DeltaT_FCAL");
175 locHistTitle = locParticleROOTName +
string(
" in FCAL;#Deltat (ns) (Reconstructed - Thrown)");
180 locHistName =
string(
"DeltaVertexZ");
181 locHistTitle = locParticleROOTName +
string(
";#DeltaVertex-Z (cm) (Reconstructed - Thrown)");
185 locHistName =
string(
"DeltaPOverPVsP");
186 locHistTitle = locParticleROOTName +
string(
";p (GeV/c);#Deltap/p (Reconstructed - Thrown)");
190 locHistName =
string(
"DeltaPOverPVsTheta");
191 locHistTitle = locParticleROOTName +
string(
";#theta#circ;#Deltap/p (Reconstructed - Thrown)");
195 locHistName =
string(
"DeltaThetaVsP");
196 locHistTitle = locParticleROOTName +
string(
";p (GeV/c);#Delta#theta#circ (Reconstructed - Thrown)");
200 locHistName =
string(
"DeltaThetaVsTheta");
201 locHistTitle = locParticleROOTName +
string(
";#theta#circ;#Delta#theta#circ (Reconstructed - Thrown)");
205 locHistName =
string(
"DeltaPhiVsP");
206 locHistTitle = locParticleROOTName +
string(
";p (GeV/c);#Delta#phi#circ (Reconstructed - Thrown)");
210 locHistName =
string(
"DeltaPhiVsTheta");
211 locHistTitle = locParticleROOTName +
string(
";#theta#circ;#Delta#phi#circ (Reconstructed - Thrown)");
215 locHistName =
string(
"DeltaTVsTheta");
216 locHistTitle = locParticleROOTName +
string(
";#theta#circ;#Deltat (ns) (Reconstructed - Thrown)");
220 locHistName =
string(
"DeltaTVsP");
221 locHistTitle = locParticleROOTName +
string(
";p (GeV/c);#Deltat (ns) (Reconstructed - Thrown)");
225 locHistName =
string(
"DeltaVertexZVsTheta");
226 locHistTitle = locParticleROOTName +
string(
";#theta#circ;#DeltaVertex-Z (cm) (Reconstructed - Thrown)");
232 for(
size_t loc_j = 0; loc_j <
dPullTypes.size(); ++loc_j)
240 locHistName = locPullNames[loc_j] +
string(
"Pull");
241 locHistTitle = locParticleROOTName +
string(
";#Delta") + locPullTitles[loc_j] +
string(
"/#sigma_{") + locPullTitles[loc_j] +
string(
"} (Reconstructed - Thrown)");
245 locHistName = locPullNames[loc_j] +
string(
"PullVsP");
246 locHistTitle = locParticleROOTName +
string(
";p (GeV/c);#Delta") + locPullTitles[loc_j] +
string(
"/#sigma_{") + locPullTitles[loc_j] +
string(
"} (Reconstructed - Thrown)");
250 locHistName = locPullNames[loc_j] +
string(
"PullVsTheta");
251 locHistTitle = locParticleROOTName +
string(
";#theta#circ;#Delta") + locPullTitles[loc_j] +
string(
"/#sigma_{") + locPullTitles[loc_j] +
string(
"} (Reconstructed - Thrown)");
259 locHistName =
"TimePull_CDC";
260 locHistTitle = locParticleROOTName +
string(
";#Deltat/#sigma_{#Deltat}");
263 locHistName =
"TimePullVsTheta_CDC";
264 locHistTitle = locParticleROOTName +
string(
";#theta#circ;#Deltat/#sigma_{#Deltat}");
267 locHistName =
"TimePullVsP_CDC";
268 locHistTitle = locParticleROOTName +
string(
";p (GeV/c);#Deltat/#sigma_{#Deltat}");
272 locHistName =
"TimePull_ST";
273 locHistTitle = locParticleROOTName +
string(
";#Deltat/#sigma_{#Deltat}");
276 locHistName =
"TimePullVsTheta_ST";
277 locHistTitle = locParticleROOTName +
string(
";#theta#circ;#Deltat/#sigma_{#Deltat}");
280 locHistName =
"TimePullVsP_ST";
281 locHistTitle = locParticleROOTName +
string(
";p (GeV/c);#Deltat/#sigma_{#Deltat}");
286 locHistName =
"TimePull_BCAL";
287 locHistTitle = locParticleROOTName +
string(
";#Deltat/#sigma_{#Deltat}");
290 locHistName =
"TimePullVsTheta_BCAL";
291 locHistTitle = locParticleROOTName +
string(
";#theta#circ;#Deltat/#sigma_{#Deltat}");
294 locHistName =
"TimePullVsP_BCAL";
295 locHistTitle = locParticleROOTName +
string(
";p (GeV/c);#Deltat/#sigma_{#Deltat}");
301 locHistName =
"TimePull_TOF";
302 locHistTitle = locParticleROOTName +
string(
";#Deltat/#sigma_{#Deltat}");
305 locHistName =
"TimePullVsP_TOF";
306 locHistTitle = locParticleROOTName +
string(
";p (GeV/c);#Deltat/#sigma_{#Deltat}");
311 locHistName =
"TimePull_FCAL";
312 locHistTitle = locParticleROOTName +
string(
";#Deltat/#sigma_{#Deltat}");
315 locHistName =
"TimePullVsP_FCAL";
316 locHistTitle = locParticleROOTName +
string(
";p (GeV/c);#Deltat/#sigma_{#Deltat}");
319 gDirectory->cd(
"..");
321 gDirectory->cd(
"..");
323 gDirectory->cd(
"..");
336 cout <<
"WARNING: REQUESTED HISTOGRAM OF KINEMAITIC FIT RESULTS WHEN NO KINEMATIC FIT!!! Skipping histogram." << endl;
340 vector<const DMCThrown*> locMCThrowns;
341 locEventLoop->Get(locMCThrowns);
342 if(locMCThrowns.empty())
345 vector<const DBeamPhoton*> locBeamPhotons;
346 locEventLoop->Get(locBeamPhotons,
"MCGEN");
347 const DBeamPhoton* locThrownBeamPhoton = locBeamPhotons.empty() ? NULL : locBeamPhotons[0];
349 vector<const DMCThrownMatching*> locMCThrownMatchingVector;
350 locEventLoop->Get(locMCThrownMatchingVector);
351 if(locMCThrownMatchingVector.empty())
357 locEventLoop->GetSingle(locThrownEventRFBunch,
"Thrown");
360 double locRFTime = locEventRFBunch->
dTime;
361 double locRFDeltaT = locRFTime - locThrownEventRFBunch->
dTime;
381 if(locKinematicData != NULL)
383 if(locKinematicData->
PID() ==
Gamma)
402 if(locKinematicData == NULL)
406 if(
Get_Reaction()->Get_ReactionStep(loc_i)->Get_MissingParticleIndex() ==
int(loc_j))
411 if(locSourceObject != NULL)
413 pair<Particle_t, const JObject*> locParticleInfo(locKinematicData->
PID(), locSourceObject);
414 pair<size_t, pair<Particle_t, const JObject*> > locHistInfo(loc_i, locParticleInfo);
423 double locMatchFOM = 0.0;
425 if(locMCThrown != NULL)
426 Fill_ChargedHists(locChargedTrackHypothesis, locMCThrown, locThrownEventRFBunch, loc_i);
431 double locMatchFOM = 0.0;
433 if(locMCThrown != NULL)
434 Fill_NeutralHists(locNeutralParticleHypothesis, locMCThrown, locThrownEventRFBunch, loc_i);
443 if(locThrownKinematicData == NULL)
449 double locThrownP = locThrownMomentum.Mag();
450 double locDeltaPOverP = (locMomentum.Mag() - locThrownP)/locThrownP;
451 double locDeltaT = locKinematicData->
time() - locThrownKinematicData->
time();
468 double locThrownP = locMCThrown->
momentum().Mag();
469 double locThrownTheta = locMCThrown->
momentum().Theta()*180.0/TMath::Pi();
470 double locDeltaPOverP = (locChargedTrackHypothesis->
momentum().Mag() - locThrownP)/locThrownP;
471 double locDeltaTheta = locChargedTrackHypothesis->
momentum().Theta()*180.0/TMath::Pi() - locThrownTheta;
472 double locDeltaPhi = locChargedTrackHypothesis->
momentum().Phi()*180.0/TMath::Pi() - locMCThrown->
momentum().Phi()*180.0/TMath::Pi();
473 double locDeltaT = locChargedTrackHypothesis->
time() - locMCThrown->
time();
474 double locDeltaVertexZ = locChargedTrackHypothesis->
position().Z() - locMCThrown->
position().Z();
475 const TMatrixDSym& locCovarianceMatrix = *(locChargedTrackHypothesis->
errorMatrix().get());
477 double locStartTime = locThrownEventRFBunch->
dTime + (locMCThrown->
z() -
dTargetZCenter)/29.9792458;
478 double locTimePull = (locStartTime - locChargedTrackHypothesis->
time())/
sqrt(locCovarianceMatrix(6, 6));
479 double locT0Pull = (locStartTime - locChargedTrackHypothesis->
t0())/locChargedTrackHypothesis->
t0_err();
537 for(
size_t loc_j = 0; loc_j <
dPullTypes.size(); ++loc_j)
541 double locPull = 0.0;
545 locPull = (locChargedTrackHypothesis->
momentum()(locIndex) - locMCThrown->
momentum()(locIndex))/
sqrt(locCovarianceMatrix(locIndex, locIndex));
550 locPull = (locChargedTrackHypothesis->
position()(locIndex) - locMCThrown->
position()(locIndex))/
sqrt(locCovarianceMatrix(locIndex + 3, locIndex + 3));
553 locPull = (locChargedTrackHypothesis->
time() - locMCThrown->
time())/
sqrt(locCovarianceMatrix(6, 6));
567 double locThrownP = locMCThrown->
momentum().Mag();
568 double locThrownTheta = locMCThrown->
momentum().Theta()*180.0/TMath::Pi();
570 double locPMag = locNeutralP3.Mag();
571 double locDeltaPOverP = (locPMag - locThrownP)/locThrownP;
572 double locDeltaTheta = locNeutralP3.Theta()*180.0/TMath::Pi() - locThrownTheta;
573 double locDeltaPhi = locNeutralP3.Phi()*180.0/TMath::Pi() - locMCThrown->
momentum().Phi()*180.0/TMath::Pi();
574 double locDeltaT = locNeutralParticleHypothesis->
time() - locMCThrown->
time();
575 double locDeltaVertexZ = locNeutralParticleHypothesis->
position().Z() - locMCThrown->
position().Z();
576 auto locCovarianceMatrix = locNeutralParticleHypothesis->
errorMatrix();
578 double locStartTime = locThrownEventRFBunch->
dTime + (locMCThrown->
z() -
dTargetZCenter)/29.9792458;
579 double locTimePull = (locCovarianceMatrix !=
nullptr) ? (locStartTime - locNeutralParticleHypothesis->
time())/
sqrt((*locCovarianceMatrix)(6, 6)) : std::numeric_limits<double>::quiet_NaN();
581 double locEPull = 0.0;
585 locJacobian(0, 0) = locNeutralP3.Px()/locPMag;
586 locJacobian(0, 1) = locNeutralP3.Py()/locPMag;
587 locJacobian(0, 2) = locNeutralP3.Pz()/locPMag;
588 for(
unsigned int loc_i = 0; loc_i < 4; ++loc_i)
589 locJacobian(0, 3 + loc_i) = 0.0;
591 if(locCovarianceMatrix !=
nullptr)
593 TMatrixDSym locCovCopy = *locCovarianceMatrix;
594 locCovCopy.Similarity(locJacobian);
595 double locEUncertainty =
sqrt(locCovCopy(0, 0));
596 locEPull = (locNeutralParticleHypothesis->
energy() - locMCThrown->
energy())/locEUncertainty;
599 locEPull = std::numeric_limits<double>::quiet_NaN();
638 if(locCovarianceMatrix !=
nullptr)
640 for(
size_t loc_j = 0; loc_j <
dPullTypes.size(); ++loc_j)
644 double locPull = 0.0;
650 locPull = (locNeutralParticleHypothesis->
position()(locIndex) - locMCThrown->
position()(locIndex))/
sqrt((*locCovarianceMatrix)(locIndex + 3, locIndex + 3));
653 locPull = (locNeutralParticleHypothesis->
time() - locMCThrown->
time())/
sqrt((*locCovarianceMatrix)(6, 6));
665 string locHistName, locHistTitle, locParticleName, locParticleROOTName;
670 japp->RootWriteLock();
681 locHistName =
"Momentum";
682 locHistTitle =
string(
"MCGEN Thrown Beam ") + locParticleROOTName +
string(
";p (GeV/c)");
685 locHistName =
"Time";
686 locHistTitle =
string(
"MCGEN Thrown Beam ") + locParticleROOTName +
string(
";t (ns)");
689 gDirectory->cd(
"..");
699 locHistName =
"Momentum";
700 locHistTitle =
string(
"TRUTH Thrown Beam ") + locParticleROOTName +
string(
";p (GeV/c)");
703 locHistName =
"Time";
704 locHistTitle =
string(
"TRUTH Thrown Beam ") + locParticleROOTName +
string(
";t (ns)");
707 gDirectory->cd(
"..");
718 locHistName =
"Momentum";
719 locHistTitle =
string(
"Thrown ") + locParticleROOTName +
string(
";p (GeV/c)");
723 locHistName =
"Theta";
724 locHistTitle =
string(
"Thrown ") + locParticleROOTName +
string(
";#theta#circ");
729 locHistTitle =
string(
"Thrown ") + locParticleROOTName +
string(
";#phi#circ");
733 locHistName =
"PVsTheta";
734 locHistTitle =
string(
"Thrown ") + locParticleROOTName +
string(
";#theta#circ;p (GeV/c)");
738 locHistName =
"PhiVsTheta";
739 locHistTitle =
string(
"Thrown ") + locParticleROOTName +
string(
";#theta#circ;#phi#circ");
743 locHistName =
"VertexZ";
744 locHistTitle =
string(
"Thrown ") + locParticleROOTName +
string(
";Vertex-Z (cm)");
748 locHistName =
"VertexYVsX";
749 locHistTitle =
string(
"Thrown ") + locParticleROOTName +
string(
";Vertex-X (cm);Vertex-Y (cm)");
753 locHistName =
"VertexT";
754 locHistTitle =
string(
"Thrown ") + locParticleROOTName +
string(
";Vertex-T (ns)");
757 gDirectory->cd(
"..");
768 vector<const DMCThrown*> locMCThrowns, locMCThrowns_Decaying;
769 locEventLoop->Get(locMCThrowns,
"FinalState");
770 locEventLoop->Get(locMCThrowns_Decaying,
"Decaying");
771 locMCThrowns.insert(locMCThrowns.begin(), locMCThrowns_Decaying.begin(), locMCThrowns_Decaying.end());
772 if(locMCThrowns.empty())
781 vector<const DBeamPhoton*> locMCGENBeamPhotons;
782 locEventLoop->Get(locMCGENBeamPhotons,
"MCGEN");
784 vector<const DBeamPhoton*> locBeamPhotons;
785 locEventLoop->Get(locBeamPhotons,
"TRUTH");
792 for(
size_t loc_i = 0; loc_i < locMCGENBeamPhotons.size(); ++loc_i)
797 for(
size_t loc_i = 0; loc_i < locBeamPhotons.size(); ++loc_i)
805 for(
size_t loc_i = 0; loc_i < locMCThrowns.size(); ++loc_i)
807 locMCThrown = locMCThrowns[loc_i];
813 double locPhi = locMomentum.Phi()*180.0/TMath::Pi();
814 double locTheta = locMomentum.Theta()*180.0/TMath::Pi();
815 double locP = locMomentum.Mag();
838 string locHistName, locHistTitle, locParticleName, locParticleROOTName;
842 locEventLoop->GetSingle(locAnalysisUtilities);
846 japp->RootWriteLock();
858 locHistName =
"Momentum";
859 locHistTitle =
string(
"Thrown Beam ") + locParticleROOTName +
string(
";p (GeV/c)");
861 gDirectory->cd(
"..");
867 locHistName =
"BetaVsP_Q+";
868 locHistTitle =
"q^{+};p (GeV/c);#beta";
871 locHistName =
"BetaVsP_Q-";
872 locHistTitle =
"q^{-};p (GeV/c);#beta";
875 gDirectory->cd(
"..");
885 locHistName =
"Momentum";
886 locHistTitle =
string(
"Thrown ") + locParticleROOTName +
string(
";p (GeV/c)");
890 locHistName =
"Theta";
891 locHistTitle =
string(
"Thrown ") + locParticleROOTName +
string(
";#theta#circ");
896 locHistTitle =
string(
"Thrown ") + locParticleROOTName +
string(
";#phi#circ");
900 locHistName =
"PVsTheta";
901 locHistTitle =
string(
"Thrown ") + locParticleROOTName +
string(
";#theta#circ;p (GeV/c)");
905 locHistName =
"PhiVsTheta";
906 locHistTitle =
string(
"Thrown ") + locParticleROOTName +
string(
";#theta#circ;#phi#circ");
910 locHistName =
"VertexZ";
911 locHistTitle =
string(
"Thrown ") + locParticleROOTName +
string(
";Vertex-Z (cm)");
915 locHistName =
"VertexYVsX";
916 locHistTitle =
string(
"Thrown ") + locParticleROOTName +
string(
";Vertex-X (cm);Vertex-Y (cm)");
920 locHistName =
"VertexT";
921 locHistTitle =
string(
"Thrown ") + locParticleROOTName +
string(
";Vertex-T (ns)");
924 gDirectory->cd(
"..");
935 vector<const DMCThrown*> locMCThrowns, locMCThrowns_Decaying;
936 locEventLoop->Get(locMCThrowns,
"FinalState");
937 locEventLoop->Get(locMCThrowns_Decaying,
"Decaying");
938 locMCThrowns.insert(locMCThrowns.begin(), locMCThrowns_Decaying.begin(), locMCThrowns_Decaying.end());
939 if(locMCThrowns.empty())
946 locEventLoop->GetSingle(locMCThrownMatching);
948 vector<const DBeamPhoton*> locBeamPhotons;
949 locEventLoop->Get(locBeamPhotons);
956 for(
size_t loc_i = 0; loc_i < locBeamPhotons.size(); ++loc_i)
961 for(
size_t loc_i = 0; loc_i < locMCThrowns.size(); ++loc_i)
963 const DMCThrown* locMCThrown = locMCThrowns[loc_i];
966 double locMatchFOM = 0.0;
967 double locBeta_Timing = 0.0;
971 if(locChargedTrackHypothesis == NULL)
973 locBeta_Timing = locChargedTrackHypothesis->
measuredBeta();
978 if(locNeutralParticleHypothesis == NULL)
980 locBeta_Timing = locNeutralParticleHypothesis->
measuredBeta();
984 double locPhi = locMomentum.Phi()*180.0/TMath::Pi();
985 double locTheta = locMomentum.Theta()*180.0/TMath::Pi();
986 double locP = locMomentum.Mag();
1015 string locHistName, locHistTitle, locParticleName, locParticleROOTName;
1023 japp->RootWriteLock();
1029 locHistName =
"DeltaT_RFBeamBunch";
1032 deque<string> locPullNames(8,
"");
1033 locPullNames[0] =
"E"; locPullNames[1] =
"Px"; locPullNames[2] =
"Py"; locPullNames[3] =
"Pz";
1034 locPullNames[4] =
"Xx"; locPullNames[5] =
"Xy"; locPullNames[6] =
"Xz"; locPullNames[7] =
"T";
1036 deque<string> locPullTitles(8,
"");
1037 locPullTitles[0] =
"E"; locPullTitles[1] =
"p_{x}"; locPullTitles[2] =
"p_{y}"; locPullTitles[3] =
"p_{z}";
1038 locPullTitles[4] =
"x_{x}"; locPullTitles[5] =
"x_{y}"; locPullTitles[6] =
"x_{z}"; locPullTitles[7] =
"t";
1048 locHistName =
string(
"MatchFOM");
1049 locHistTitle = locParticleROOTName +
string(
";Thrown/Reconstructed Matching FOM");
1053 locHistName =
string(
"DeltaPOverP");
1054 locHistTitle = locParticleROOTName +
string(
";#Deltap/p (Reconstructed - Thrown)");
1058 locHistName =
string(
"DeltaTheta");
1059 locHistTitle = locParticleROOTName +
string(
";#Delta#theta#circ (Reconstructed - Thrown)");
1063 locHistName =
string(
"DeltaPhi");
1064 locHistTitle = locParticleROOTName +
string(
";#Delta#phi#circ (Reconstructed - Thrown)");
1068 locHistName =
string(
"DeltaT");
1069 locHistTitle = locParticleROOTName +
string(
";#Deltat (ns) (Reconstructed - Thrown)");
1073 locHistName =
string(
"DeltaT_BCAL");
1074 locHistTitle = locParticleROOTName +
string(
" in BCAL;#Deltat (ns) (Reconstructed - Thrown)");
1080 locHistName =
string(
"DeltaT_TOF");
1081 locHistTitle = locParticleROOTName +
string(
" in TOF;#Deltat (ns) (Reconstructed - Thrown)");
1088 locHistName =
string(
"DeltaT_FCAL");
1089 locHistTitle = locParticleROOTName +
string(
" in FCAL;#Deltat (ns) (Reconstructed - Thrown)");
1094 locHistName =
string(
"DeltaVertexZ");
1095 locHistTitle = locParticleROOTName +
string(
";#DeltaVertex-Z (cm) (Reconstructed - Thrown)");
1099 locHistName =
string(
"DeltaPOverPVsP");
1100 locHistTitle = locParticleROOTName +
string(
";p (GeV/c);#Deltap/p (Reconstructed - Thrown)");
1104 locHistName =
string(
"DeltaPOverPVsTheta");
1105 locHistTitle = locParticleROOTName +
string(
";#theta#circ;#Deltap/p (Reconstructed - Thrown)");
1109 locHistName =
string(
"DeltaThetaVsP");
1110 locHistTitle = locParticleROOTName +
string(
";p (GeV/c);#Delta#theta#circ (Reconstructed - Thrown)");
1114 locHistName =
string(
"DeltaThetaVsTheta");
1115 locHistTitle = locParticleROOTName +
string(
";#theta#circ;#Delta#theta#circ (Reconstructed - Thrown)");
1119 locHistName =
string(
"DeltaPhiVsP");
1120 locHistTitle = locParticleROOTName +
string(
";p (GeV/c);#Delta#phi#circ (Reconstructed - Thrown)");
1124 locHistName =
string(
"DeltaPhiVsTheta");
1125 locHistTitle = locParticleROOTName +
string(
";#theta#circ;#Delta#phi#circ (Reconstructed - Thrown)");
1129 locHistName =
string(
"DeltaTVsTheta");
1130 locHistTitle = locParticleROOTName +
string(
";#theta#circ;#Deltat (ns) (Reconstructed - Thrown)");
1134 locHistName =
string(
"DeltaTVsP");
1135 locHistTitle = locParticleROOTName +
string(
";p (GeV/c);#Deltat (ns) (Reconstructed - Thrown)");
1139 locHistName =
string(
"DeltaVertexZVsTheta");
1140 locHistTitle = locParticleROOTName +
string(
";#theta#circ;#DeltaVertex-Z (cm) (Reconstructed - Thrown)");
1144 locHistName =
"PVsTheta_LargeDeltaT";
1145 locHistTitle = locParticleROOTName +
string(
";#theta#circ;p (GeV/c)");
1151 for(
size_t loc_j = 0; loc_j <
dPullTypes.size(); ++loc_j)
1159 locHistName = locPullNames[loc_j] +
string(
"Pull");
1160 locHistTitle = locParticleROOTName +
string(
";#Delta") + locPullTitles[loc_j] +
string(
"/#sigma_{") + locPullTitles[loc_j] +
string(
"} (Reconstructed - Thrown)");
1164 locHistName = locPullNames[loc_j] +
string(
"PullVsP");
1165 locHistTitle = locParticleROOTName +
string(
";p (GeV/c);#Delta") + locPullTitles[loc_j] +
string(
"/#sigma_{") + locPullTitles[loc_j] +
string(
"} (Reconstructed - Thrown)");
1169 locHistName = locPullNames[loc_j] +
string(
"PullVsTheta");
1170 locHistTitle = locParticleROOTName +
string(
";#theta#circ;#Delta") + locPullTitles[loc_j] +
string(
"/#sigma_{") + locPullTitles[loc_j] +
string(
"} (Reconstructed - Thrown)");
1178 locHistName =
"TimePull_CDC";
1179 locHistTitle = locParticleROOTName +
string(
";#Deltat/#sigma_{#Deltat}");
1182 locHistName =
"TimePullVsTheta_CDC";
1183 locHistTitle = locParticleROOTName +
string(
";#theta#circ;#Deltat/#sigma_{#Deltat}");
1186 locHistName =
"TimePullVsP_CDC";
1187 locHistTitle = locParticleROOTName +
string(
";p (GeV/c);#Deltat/#sigma_{#Deltat}");
1191 locHistName =
"TimePull_ST";
1192 locHistTitle = locParticleROOTName +
string(
";#Deltat/#sigma_{#Deltat}");
1195 locHistName =
"TimePullVsTheta_ST";
1196 locHistTitle = locParticleROOTName +
string(
";#theta#circ;#Deltat/#sigma_{#Deltat}");
1199 locHistName =
"TimePullVsP_ST";
1200 locHistTitle = locParticleROOTName +
string(
";p (GeV/c);#Deltat/#sigma_{#Deltat}");
1205 locHistName =
"TimePull_BCAL";
1206 locHistTitle = locParticleROOTName +
string(
";#Deltat/#sigma_{#Deltat}");
1209 locHistName =
"TimePullVsTheta_BCAL";
1210 locHistTitle = locParticleROOTName +
string(
";#theta#circ;#Deltat/#sigma_{#Deltat}");
1213 locHistName =
"TimePullVsP_BCAL";
1214 locHistTitle = locParticleROOTName +
string(
";p (GeV/c);#Deltat/#sigma_{#Deltat}");
1220 locHistName =
"TimePull_TOF";
1221 locHistTitle = locParticleROOTName +
string(
";#Deltat/#sigma_{#Deltat}");
1224 locHistName =
"TimePullVsP_TOF";
1225 locHistTitle = locParticleROOTName +
string(
";p (GeV/c);#Deltat/#sigma_{#Deltat}");
1230 locHistName =
"TimePull_FCAL";
1231 locHistTitle = locParticleROOTName +
string(
";#Deltat/#sigma_{#Deltat}");
1234 locHistName =
"TimePullVsP_FCAL";
1235 locHistTitle = locParticleROOTName +
string(
";p (GeV/c);#Deltat/#sigma_{#Deltat}");
1238 gDirectory->cd(
"..");
1240 gDirectory->cd(
"..");
1251 vector<const DMCThrown*> locMCThrowns;
1252 locEventLoop->Get(locMCThrowns);
1253 if(locMCThrowns.empty())
1260 double locDeltaPOverP, locDeltaTheta, locDeltaPhi, locDeltaVertexZ;
1261 double locThrownP, locThrownTheta, locDeltaT;
1263 vector<const DMCThrownMatching*> locMCThrownMatchingVector;
1264 locEventLoop->Get(locMCThrownMatchingVector);
1265 if(locMCThrownMatchingVector.empty())
1270 locEventLoop->GetSingle(locThrownEventRFBunch,
"Thrown");
1273 vector<const DEventRFBunch*> locEventRFBunches;
1274 locEventLoop->Get(locEventRFBunches);
1275 const DEventRFBunch* locEventRFBunch = locEventRFBunches[0];
1276 double locRFTime = locEventRFBunch->
dTime;
1277 double locRFDeltaT = locRFTime - locThrownEventRFBunch->
dTime;
1289 map<const DMCThrown*, pair<const DChargedTrack*, double> > locThrownToChargedMap;
1291 map<const DMCThrown*, pair<const DChargedTrack*, double> >::iterator locChargedIterator = locThrownToChargedMap.begin();
1292 for(; locChargedIterator != locThrownToChargedMap.end(); ++locChargedIterator)
1294 const DMCThrown* locMCThrown = locChargedIterator->first;
1299 double locMatchFOM = locChargedIterator->second.second;
1300 const DChargedTrackHypothesis* locChargedTrackHypothesis = locChargedIterator->second.first->Get_Hypothesis(locPID);
1301 if(locChargedTrackHypothesis == NULL)
1302 locChargedTrackHypothesis = locChargedIterator->second.first->Get_BestFOM();
1304 locThrownP = locMCThrown->
momentum().Mag();
1305 locThrownTheta = locMCThrown->
momentum().Theta()*180.0/TMath::Pi();
1306 locDeltaPOverP = (locChargedTrackHypothesis->
momentum().Mag() - locThrownP)/locThrownP;
1307 locDeltaTheta = locChargedTrackHypothesis->
momentum().Theta()*180.0/TMath::Pi() - locThrownTheta;
1308 locDeltaPhi = locChargedTrackHypothesis->
momentum().Phi()*180.0/TMath::Pi() - locMCThrown->
momentum().Phi()*180.0/TMath::Pi();
1309 locDeltaT = locChargedTrackHypothesis->
time() - locMCThrown->
time();
1310 locDeltaVertexZ = locChargedTrackHypothesis->
position().Z() - locMCThrown->
position().Z();
1311 const TMatrixDSym& locCovarianceMatrix = *(locChargedTrackHypothesis->
errorMatrix().get());
1315 double locStartTime = locThrownEventRFBunch->
dTime + (locMCThrown->
z() -
dTargetZCenter)/29.9792458;
1316 double locTimePull = (locStartTime - locChargedTrackHypothesis->
time())/
sqrt(locCovarianceMatrix(6, 6));
1317 double locT0Pull = (locStartTime - locChargedTrackHypothesis->
t0())/locChargedTrackHypothesis->
t0_err();
1375 if((locTrackTimeBased->
FOM > 0.01) && (locDeltaT >= 1.002))
1378 for(
size_t loc_j = 0; loc_j <
dPullTypes.size(); ++loc_j)
1382 double locPull = 0.0;
1386 locPull = (locChargedTrackHypothesis->
momentum()(locIndex) - locMCThrown->
momentum()(locIndex))/
sqrt(locCovarianceMatrix(locIndex, locIndex));
1391 locPull = (locChargedTrackHypothesis->
position()(locIndex) - locMCThrown->
position()(locIndex))/
sqrt(locCovarianceMatrix(locIndex + 3, locIndex + 3));
1394 locPull = (locChargedTrackHypothesis->
time() - locMCThrown->
time())/
sqrt(locCovarianceMatrix(6, 6));
1404 map<const DMCThrown*, pair<const DNeutralParticle*, double> > locThrownToNeutralMap;
1406 map<const DMCThrown*, pair<const DNeutralParticle*, double> >::iterator locNeutralIterator = locThrownToNeutralMap.begin();
1407 for(; locNeutralIterator != locThrownToNeutralMap.end(); ++locNeutralIterator)
1409 const DMCThrown* locMCThrown = locNeutralIterator->first;
1414 double locMatchFOM = locNeutralIterator->second.second;
1416 if(locNeutralParticleHypothesis == NULL)
1417 locNeutralParticleHypothesis = locNeutralIterator->second.first->Get_BestFOM();
1421 locThrownP = locMCThrown->
momentum().Mag();
1422 locThrownTheta = locMCThrown->
momentum().Theta()*180.0/TMath::Pi();
1423 locDeltaPOverP = (locNeutralParticleHypothesis->
momentum().Mag() - locThrownP)/locThrownP;
1424 locDeltaTheta = locNeutralParticleHypothesis->
momentum().Theta()*180.0/TMath::Pi() - locThrownTheta;
1425 locDeltaPhi = locNeutralParticleHypothesis->
momentum().Phi()*180.0/TMath::Pi() - locMCThrown->
momentum().Phi()*180.0/TMath::Pi();
1426 locDeltaT = locNeutralParticleHypothesis->
time() - locMCThrown->
time();
1427 locDeltaVertexZ = locNeutralParticleHypothesis->
position().Z() - locMCThrown->
position().Z();
1428 const TMatrixDSym& locCovarianceMatrix = *(locNeutralParticleHypothesis->
errorMatrix().get());
1430 double locStartTime = locThrownEventRFBunch->
dTime + (locMCThrown->
z() -
dTargetZCenter)/29.9792458;
1431 double locTimePull = (locStartTime - locNeutralParticleHypothesis->
time())/
sqrt(locCovarianceMatrix(6, 6));
1467 if(locDeltaT >= 1.002)
1470 for(
size_t loc_j = 0; loc_j <
dPullTypes.size(); ++loc_j)
1474 double locPull = 0.0;
1480 locPull = (locNeutralParticleHypothesis->
position()(locIndex) - locMCThrown->
position()(locIndex))/
sqrt(locCovarianceMatrix(locIndex + 3, locIndex + 3));
1483 locPull = (locNeutralParticleHypothesis->
time() - locMCThrown->
time())/
sqrt(locCovarianceMatrix(6, 6));
1497 string locStepName, locStepROOTName, locHistTitle, locHistName, locParticleName, locParticleROOTName;
1505 vector<const DAnalysisUtilities*> locAnalysisUtilitiesVector;
1506 locEventLoop->Get(locAnalysisUtilitiesVector);
1510 japp->RootWriteLock();
1514 for(
size_t loc_i = 0; loc_i < locNumSteps; ++loc_i)
1517 if(locDetectedPIDs.empty())
1525 for(
auto locPID : locDetectedPIDs)
1534 locHistName =
string(
"Momentum_CorrectID_") + locParticleName;
1535 locHistTitle =
string(
"Correct ") + locParticleROOTName +
string(
" ID, ") + locStepROOTName +
string(
";p (GeV/c)");
1539 locHistName =
string(
"Momentum_IncorrectID_") + locParticleName;
1540 locHistTitle =
string(
"Incorrect ") + locParticleROOTName +
string(
" ID, ") + locStepROOTName +
string(
";p (GeV/c)");
1544 locHistName =
string(
"PVsTheta_CorrectID_") + locParticleName;
1545 locHistTitle =
string(
"Correct ") + locParticleROOTName +
string(
" ID, ") + locStepROOTName +
string(
";#theta#circ;p (GeV/c)");
1549 locHistName =
string(
"PVsTheta_IncorrectID_") + locParticleName;
1550 locHistTitle =
string(
"Incorrect ") + locParticleROOTName +
string(
" ID, ") + locStepROOTName +
string(
";#theta#circ;p (GeV/c)");
1553 gDirectory->cd(
"..");
1557 locHistName =
"Combo_TruePIDStatus";
1559 dHist_TruePIDStatus = GetOrCreate_Histogram<TH1I>(locHistName, locHistTitle, 2, -0.5, 1.5);
1569 vector<const DMCThrownMatching*> locMCThrownMatchingVector;
1570 locEventLoop->Get(locMCThrownMatchingVector);
1571 if(locMCThrownMatchingVector.empty())
1574 double locP, locTheta;
1578 int locComboTruePIDStatus = 1;
1583 for(
size_t loc_j = 0; loc_j < locParticles.size(); ++loc_j)
1585 locPID = locParticles[loc_j]->PID();
1587 double locMatchFOM = 0.0;
1589 locMCThrown = locMCThrownMatching->
Get_MatchingMCThrown(static_cast<const DNeutralParticleHypothesis*>(locParticles[loc_j]), locMatchFOM);
1591 locMCThrown = locMCThrownMatching->
Get_MatchingMCThrown(static_cast<const DChargedTrackHypothesis*>(locParticles[loc_j]), locMatchFOM);
1593 bool locCutResult = (locMCThrown == NULL) ?
false : (((
Particle_t)locMCThrown->
type) == locPID);
1595 locComboTruePIDStatus = 0;
1599 pair<Particle_t, const JObject*> locParticleInfo(locParticles[loc_j]->PID(), locSourceObject);
1600 pair<size_t, pair<Particle_t, const JObject*> > locHistInfo(loc_i, locParticleInfo);
1605 locP = locParticles[loc_j]->momentum().Mag();
1606 locTheta = locParticles[loc_j]->momentum().Theta()*180.0/TMath::Pi();
vector< const DKinematicData * > Get_FinalParticles_Measured(void) const
DetectorSystem_t t1_detector(void) const
TDirectoryFile * ChangeTo_BaseDirectory(void)
unsigned int dNumVertexZBins
deque< map< Particle_t, TH1I * > > dHistDeque_DeltaT_TOF
deque< map< Particle_t, TH2I * > > dHistDeque_DeltaVertexZVsTheta
const DKinematicData * Get_FinalParticle_Measured(size_t locFinalParticleIndex) const
void Initialize(JEventLoop *locEventLoop)
static char * ParticleName_ROOT(Particle_t p)
unsigned int dNum2DPhiBins
void Fill_BeamHists(const DKinematicData *locKinematicData, const DKinematicData *locThrownKinematicData)
size_t Get_NumParticleComboSteps(void) const
void Get_ThrownToChargedMap(map< const DMCThrown *, pair< const DChargedTrack *, double > > &locThrownToChargedMap) const
map< Particle_t, TH1I * > dHistMap_TimePull_FCAL
bool Perform_Action(JEventLoop *locEventLoop, const DParticleCombo *locParticleCombo=NULL)
unsigned int dNumDeltaPhiBins
map< int, TH2I * > dHistMap_QBetaVsP
map< Particle_t, TH2I * > dHistMap_PVsTheta_LargeDeltaT
double energy(void) const
const DReaction * Get_Reaction(void) const
deque< Particle_t > dFinalStatePIDs
map< Particle_t, TH2I * > dHistMap_DeltaThetaVsP
TDirectoryFile * CreateAndChangeTo_Directory(TDirectoryFile *locBaseDirectory, string locDirName, string locDirTitle)
map< Particle_t, TH1I * > dHistMap_DeltaT_FCAL
deque< Particle_t > dFinalStatePIDs
map< Particle_t, TH1I * > dHistMap_VertexZ
const DVector3 & position(void) const
const DTrackTimeBased * Get_TrackTimeBased(void) const
deque< map< Particle_t, TH2I * > > dHistDeque_PVsTheta_IncorrectID
unsigned int dNumDeltaTBins
map< Particle_t, TH2I * > dHistMap_PVsTheta
map< Particle_t, TH2I * > dHistMap_PVsTheta
TDirectoryFile * CreateAndChangeTo_ActionDirectory(void)
unsigned int dNumDeltaVertexZBins
unsigned int dNum2DPullBins
const DAnalysisUtilities * dAnalysisUtilities
deque< map< Particle_t, TH2I * > > dHistDeque_DeltaThetaVsTheta
const JObject * Get_FinalParticle_SourceObject(const DKinematicData *locParticle)
TH1I * dAllBeamParticle_Time
bool Perform_Action(JEventLoop *locEventLoop, const DParticleCombo *locParticleCombo)
unsigned int dNumRFDeltaTBins
map< Particle_t, map< DKinFitPullType, TH1I * > > dHistMap_Pulls
static char * ParticleType(Particle_t p)
bool Perform_Action(JEventLoop *locEventLoop, const DParticleCombo *locParticleCombo)
unsigned int dNumVertexZBins
double measuredBeta(void) const
map< Particle_t, TH1I * > dHistMap_P
const DKinematicData * Get_InitialParticle_Measured(void) const
double t0_err(void) const
string Get_StepName(const DReactionStep *locStep, bool locIncludeMissingFlag, bool locTLatexFlag)
deque< map< Particle_t, TH1I * > > dHistDeque_TimePull_CDC
set< pair< size_t, pair< Particle_t, const JObject * > > > dPreviouslyHistogrammedParticles
const DEventRFBunch * Get_EventRFBunch(void) const
map< Particle_t, TH2I * > dHistMap_TimePullVsTheta_BCAL
static int ParticleCharge(Particle_t p)
map< Particle_t, TH2I * > dHistMap_DeltaPhiVsTheta
const DNeutralShower * Get_NeutralShower(void) const
deque< map< Particle_t, TH2I * > > dHistDeque_TimePullVsTheta_CDC
bool Get_UseKinFitResultsFlag(void) const
unsigned int dNumDeltaPOverPBins
vector< Particle_t > Get_FinalPIDs(int locStepIndex=-1, bool locIncludeMissingFlag=true, bool locIncludeDecayingFlag=true, Charge_t locCharge=d_AllCharges, bool locIncludeDuplicatesFlag=true) const
void Fill_ChargedHists(const DChargedTrackHypothesis *locChargedTrackHypothesis, const DMCThrown *locMCThrown, const DEventRFBunch *locThrownEventRFBunch, size_t locStepIndex)
unsigned int dNumMCMatchingFOMBins
deque< map< Particle_t, TH2I * > > dHistDeque_DeltaTVsTheta
unsigned int dNumDeltaVertexZBins
map< Particle_t, TH2I * > dHistMap_TimePullVsP_TOF
unsigned int dNumVertexXYBins
deque< map< Particle_t, TH1I * > > dHistDeque_TimePull_ST
deque< map< Particle_t, TH2I * > > dHistDeque_TimePullVsP_FCAL
deque< map< Particle_t, TH2I * > > dHistDeque_TimePullVsP_BCAL
const DAnalysisUtilities * dAnalysisUtilities
deque< map< Particle_t, TH1I * > > dHistDeque_TimePull_BCAL
void Initialize(JEventLoop *locEventLoop)
TH1I * dBeamParticleHist_DeltaT
unsigned int dNumDeltaPhiBins
deque< map< Particle_t, TH2I * > > dHistDeque_DeltaPhiVsP
map< Particle_t, TH2I * > dHistMap_DeltaTVsTheta
Particle_t Get_InitialPID(void) const
map< Particle_t, TH2I * > dHistMap_TimePullVsP_FCAL
set< const JObject * > dPreviouslyHistogrammedBeamParticles
map< Particle_t, TH2I * > dHistMap_TimePullVsP_ST
unsigned int dNumVertexXYBins
unsigned int dNumThetaBins
deque< map< Particle_t, TH1I * > > dHistDeque_DeltaT_BCAL
map< Particle_t, TH2I * > dHistMap_TimePullVsP_CDC
deque< DKinFitPullType > dPullTypes
unsigned int dNumDeltaPOverPBins
map< Particle_t, TH1I * > dHistMap_Theta
unsigned int dNumThetaBins
void Initialize(JEventLoop *locEventLoop)
map< Particle_t, TH1I * > dHistMap_VertexZ
deque< map< Particle_t, TH1I * > > dHistDeque_DeltaPOverP
DGeometry * GetDGeometry(unsigned int run_number)
string Get_ReactionName(void) const
shared_ptr< TMatrixFSym > dCovarianceMatrix
map< Particle_t, TH1I * > dHistMap_DeltaTheta
TH1I * dHist_TruePIDStatus
map< Particle_t, TH1I * > dHistMap_Phi
set< pair< size_t, pair< Particle_t, const JObject * > > > dPreviouslyHistogrammedParticles
map< Particle_t, TH2I * > dHistMap_DeltaThetaVsTheta
deque< DKinFitPullType > dPullTypes
void Fill_NeutralHists(const DNeutralParticleHypothesis *locNeutralParticleHypothesis, const DMCThrown *locMCThrown, const DEventRFBunch *locThrownEventRFBunch, size_t locStepIndex)
deque< map< Particle_t, TH2I * > > dHistDeque_DeltaPhiVsTheta
map< Particle_t, TH1I * > dHistMap_DeltaT_BCAL
deque< map< Particle_t, TH2I * > > dHistDeque_TimePullVsP_TOF
size_t Get_NumFinalParticles(void) const
map< Particle_t, TH2I * > dHistMap_VertexYVsX
map< Particle_t, TH1I * > dHistMap_Phi
unsigned int dNumPullBins
map< Particle_t, TH2I * > dHistMap_DeltaTVsP
map< Particle_t, TH1I * > dHistMap_TimePull_BCAL
void Initialize(JEventLoop *locEventLoop)
deque< map< Particle_t, TH2I * > > dHistDeque_DeltaPOverPVsTheta
deque< map< Particle_t, TH2I * > > dHistDeque_DeltaThetaVsP
deque< Particle_t > dFinalStatePIDs
map< Particle_t, TH1I * > dHistMap_Theta
unsigned int dNum2DPullBins
deque< map< Particle_t, TH1I * > > dHistDeque_DeltaVertexZ
TH1I * dMCGENBeamParticle_P
unsigned int dNum2DThetaBins
TH1I * dRFBeamBunchDeltaT_Hist
map< Particle_t, TH2I * > dHistMap_PhiVsTheta
void Initialize(JEventLoop *locEventLoop)
TH1I * dAllBeamParticle_P
deque< map< Particle_t, TH2I * > > dHistDeque_DeltaPOverPVsP
map< Particle_t, TH1I * > dHistMap_DeltaT_TOF
map< Particle_t, TH2I * > dHistMap_VertexYVsX
deque< map< Particle_t, map< DKinFitPullType, TH2I * > > > dHistDeque_PullsVsP
const JObject * Get_FinalParticle_SourceObject(size_t locFinalParticleIndex) const
deque< map< Particle_t, TH1I * > > dHistDeque_DeltaTheta
const DKinematicData * Get_InitialParticle(void) const
map< Particle_t, TH2I * > dHistMap_TimePullVsP_BCAL
map< Particle_t, TH1I * > dHistMap_TimePull_ST
map< Particle_t, TH2I * > dHistMap_TimePullVsTheta_ST
unsigned int dNumDeltaThetaBins
bool Get_CalledPriorWithComboFlag(void) const
double measuredBeta(void) const
unsigned int dNumThetaBins
void Get_ThrownToNeutralMap(map< const DMCThrown *, pair< const DNeutralParticle *, double > > &locThrownToNeutralMap) const
deque< map< Particle_t, map< DKinFitPullType, TH1I * > > > dHistDeque_Pulls
map< Particle_t, TH2I * > dHistMap_DeltaVertexZVsTheta
unsigned int dNumPullBins
TH2I * dBeamParticleHist_DeltaPOverPVsP
const DVector3 & momentum(void) const
map< Particle_t, map< DKinFitPullType, TH2I * > > dHistMap_PullsVsP
map< Particle_t, map< DKinFitPullType, TH2I * > > dHistMap_PullsVsTheta
map< Particle_t, TH1I * > dHistMap_MatchFOM
deque< map< Particle_t, TH1I * > > dHistDeque_TimePull_TOF
unsigned int dNum2DThetaBins
TH1I * dBeamParticleHist_DeltaPOverP
TH1I * dMCGENBeamParticle_Time
bool Perform_Action(JEventLoop *locEventLoop, const DParticleCombo *locParticleCombo=NULL)
DetectorSystem_t t0_detector(void) const
map< Particle_t, TH1I * > dHistMap_VertexT
deque< map< Particle_t, TH2I * > > dHistDeque_TimePullVsP_ST
const DReactionStep * Get_ReactionStep(size_t locStepIndex) const
map< Particle_t, TH2I * > dHistMap_TimePullVsTheta_CDC
deque< map< Particle_t, map< DKinFitPullType, TH2I * > > > dHistDeque_PullsVsTheta
map< Particle_t, TH2I * > dHistMap_PhiVsTheta
unsigned int dNumDeltaThetaBins
int Get_DecayStepIndex(const DReaction *locReaction, size_t locStepIndex, size_t locParticleIndex)
map< Particle_t, TH1I * > dHistMap_DeltaT
deque< map< Particle_t, TH1I * > > dHistDeque_TimePull_FCAL
unsigned int dNum2DPhiBins
unsigned int dNumRFDeltaTBins
map< Particle_t, TH1I * > dHistMap_TimePull_TOF
map< Particle_t, TH1I * > dHistMap_DeltaPOverP
shared_ptr< const TMatrixFSym > errorMatrix(void) const
map< Particle_t, TH2I * > dHistMap_DeltaPhiVsP
map< Particle_t, TH2I * > dHistMap_DeltaPOverPVsTheta
deque< map< Particle_t, TH1I * > > dHistDeque_P_IncorrectID
deque< map< Particle_t, TH2I * > > dHistDeque_TimePullVsTheta_BCAL
const DParticleComboStep * Get_ParticleComboStep(size_t locStepIndex) const
deque< map< Particle_t, TH2I * > > dHistDeque_DeltaTVsP
const DChargedTrackHypothesis * Get_MatchingChargedHypothesis(const DMCThrown *locInputMCThrown, double &locMatchFOM) const
map< Particle_t, TH1I * > dHistMap_DeltaVertexZ
unsigned int dNum2DThetaBins
const DKinematicData * Get_FinalParticle(size_t locFinalParticleIndex) const
unsigned int dNumDeltaTBins
size_t Get_NumReactionSteps(void) const
deque< map< Particle_t, TH1I * > > dHistDeque_DeltaPhi
map< Particle_t, TH1I * > dHistMap_TimePull_CDC
int type
GEANT particle ID.
unsigned int dNumBetaBins
DetectorSystem_t t1_detector(void) const
const DNeutralParticleHypothesis * Get_MatchingNeutralHypothesis(const DMCThrown *locInputMCThrown, double &locMatchFOM) const
deque< map< Particle_t, TH2I * > > dHistDeque_TimePullVsTheta_ST
deque< map< Particle_t, TH1I * > > dHistDeque_DeltaT_FCAL
bool GetTargetZ(double &z_target) const
z-location of center of target
deque< map< Particle_t, TH1I * > > dHistDeque_DeltaT
bool Perform_Action(JEventLoop *locEventLoop, const DParticleCombo *locParticleCombo=NULL)
TH1I * dRFBeamBunchDeltaT_Hist
deque< map< Particle_t, TH1I * > > dHistDeque_P_CorrectID
Particle_t PID(void) const
const DMCThrown * Get_MatchingMCThrown(const DChargedTrackHypothesis *locChargedTrackHypothesis, double &locMatchFOM) const
deque< map< Particle_t, TH2I * > > dHistDeque_PVsTheta_CorrectID
map< Particle_t, TH2I * > dHistMap_DeltaPOverPVsP
unsigned int dNum2DThetaBins
deque< map< Particle_t, TH2I * > > dHistDeque_TimePullVsP_CDC
map< Particle_t, TH1I * > dHistMap_DeltaPhi
map< Particle_t, TH1I * > dHistMap_P
map< Particle_t, TH1I * > dHistMap_VertexT