1 #define PIDStudySelector_cxx
31 return locRadians*180.0/3.141592654;
40 TString option = GetOption();
43 ostringstream locHistName, locHistTitle;
44 unsigned int loc_i, loc_j;
46 vector<int> locParticleIDVector;
47 vector<int> locParticleIDVector_Results;
48 vector<string> locParticleSymbolVector, locParticleSymbolVector_Results;
50 string locParticleSymbol;
52 locParticleIDVector.push_back(14); locParticleIDVector.push_back(8); locParticleIDVector.push_back(9); locParticleIDVector.push_back(11);
53 locParticleIDVector_Results.push_back(14); locParticleIDVector_Results.push_back(8); locParticleIDVector_Results.push_back(9); locParticleIDVector_Results.push_back(11);
54 locParticleIDVector_Results.push_back(15); locParticleIDVector_Results.push_back(12);
56 locParticleSymbolVector.push_back(
"p"); locParticleSymbolVector.push_back(
"#pi^{+}"); locParticleSymbolVector.push_back(
"#pi^{-}"); locParticleSymbolVector.push_back(
"K^{+}");
57 locParticleSymbolVector_Results.push_back(
"p"); locParticleSymbolVector_Results.push_back(
"#pi^{+}"); locParticleSymbolVector_Results.push_back(
"#pi^{-}"); locParticleSymbolVector_Results.push_back(
"K^{+}");
58 locParticleSymbolVector_Results.push_back(
"#bar{p}"); locParticleSymbolVector_Results.push_back(
"K^{-}");
60 int locNumBinsP = 900;
61 int locNumBinsTheta = 600;
62 int locNumBinsConfidenceLevel = 1000;
63 float locRangeMinP = 0.0, locRangeMaxP = 9.0;
64 float locRangeMinTheta = 0.0, locRangeMaxTheta = 150.0;
65 float locRangeMinConfidenceLevel = 0.0, locRangeMaxConfidenceLevel = 1.0;
68 dOutputFile =
new TFile(
"dh_PIDStudies.root",
"RECREATE");
70 for(loc_i = 0; loc_i < locParticleIDVector.size(); loc_i++){
71 locPID = locParticleIDVector[loc_i];
72 locParticleSymbol = locParticleSymbolVector[loc_i];
75 locHistName <<
"dh_GeneratedTracksPVsTheta_" << locPID;
77 locHistTitle <<
"Generated " << locParticleSymbol <<
"'s;#theta (degrees);p (GeV/c)";
78 loc2FHist =
new TH2F(locHistName.str().c_str(), locHistTitle.str().c_str(), locNumBinsTheta, locRangeMinTheta, locRangeMaxTheta, locNumBinsP, locRangeMinP, locRangeMaxP);
81 locHistName <<
"dh_NonReconstructedTracksPVsTheta_" << locPID;
83 locHistTitle <<
"Non-Reconstructed " << locParticleSymbol <<
"'s;#theta (degrees);p (GeV/c)";
84 loc2FHist =
new TH2F(locHistName.str().c_str(), locHistTitle.str().c_str(), locNumBinsTheta, locRangeMinTheta, locRangeMaxTheta, locNumBinsP, locRangeMinP, locRangeMaxP);
87 locHistName <<
"dh_ReconstructedTracksPVsTheta_" << locPID;
89 locHistTitle <<
"Reconstructed " << locParticleSymbol <<
"'s;#theta (degrees);p (GeV/c)";
90 loc2FHist =
new TH2F(locHistName.str().c_str(), locHistTitle.str().c_str(), locNumBinsTheta, locRangeMinTheta, locRangeMaxTheta, locNumBinsP, locRangeMinP, locRangeMaxP);
93 locHistName <<
"dh_IdentifiedTracksPVsTheta_" << locPID;
95 locHistTitle <<
"Identified " << locParticleSymbol <<
"'s;#theta (degrees);p (GeV/c)";
96 loc2FHist =
new TH2F(locHistName.str().c_str(), locHistTitle.str().c_str(), locNumBinsTheta, locRangeMinTheta, locRangeMaxTheta, locNumBinsP, locRangeMinP, locRangeMaxP);
99 locHistName <<
"dh_MisIdentifiedTracksPVsTheta_" << locPID;
100 locHistTitle.str(
"");
101 locHistTitle <<
"Misidentified " << locParticleSymbol <<
"'s;#theta (degrees);p (GeV/c)";
102 loc2FHist =
new TH2F(locHistName.str().c_str(), locHistTitle.str().c_str(), locNumBinsTheta, locRangeMinTheta, locRangeMaxTheta, locNumBinsP, locRangeMinP, locRangeMaxP);
104 for(loc_j = 0; loc_j < locParticleIDVector_Results.size(); loc_j++){
108 locHistName <<
"dh_MisIdentifiedAsTracksPVsTheta_" << locPID <<
"_" << locParticleIDVector_Results[loc_j];
109 locHistTitle.str(
"");
110 locHistTitle <<
"MisIdentified " << locParticleSymbol <<
"as " << locParticleSymbolVector_Results[loc_j] <<
";#theta (degrees);p (GeV/c)";
111 loc2FHist =
new TH2F(locHistName.str().c_str(), locHistTitle.str().c_str(), locNumBinsTheta, locRangeMinTheta, locRangeMaxTheta, locNumBinsP, locRangeMinP, locRangeMaxP);
114 for(loc_j = 0; loc_j < locParticleIDVector_Results.size(); loc_j++){
116 locHistName <<
"dh_ConfidenceLevel_ProblemArea_Timing_" << locPID <<
"_" << locParticleIDVector_Results[loc_j];
117 locHistTitle.str(
"");
118 locHistTitle << locParticleSymbol <<
" as " << locParticleSymbolVector_Results[loc_j] <<
", 1.5 < p (GeV/c) < 3.0, 30#circ < #theta < 120#circ;Timing Confidence Level";
119 loc1FHist =
new TH1F(locHistName.str().c_str(), locHistTitle.str().c_str(), locNumBinsConfidenceLevel, locRangeMinConfidenceLevel, locRangeMaxConfidenceLevel);
122 locHistName <<
"dh_ConfidenceLevel_ProblemArea_DCdEdx_" << locPID <<
"_" << locParticleIDVector_Results[loc_j];
123 locHistTitle.str(
"");
124 locHistTitle << locParticleSymbol <<
" as " << locParticleSymbolVector_Results[loc_j] <<
", 1.5 < p (GeV/c) < 3.0, 30#circ < #theta < 120#circ;DC dEdx Confidence Level";
125 loc1FHist =
new TH1F(locHistName.str().c_str(), locHistTitle.str().c_str(), locNumBinsConfidenceLevel, locRangeMinConfidenceLevel, locRangeMaxConfidenceLevel);
130 locHistName <<
"dh_ConfidenceLevel_Overall_" << locPID;
131 locHistTitle.str(
"");
132 locHistTitle <<
"Overall " << locParticleSymbol <<
" PID;Confidence Level";
133 loc1FHist =
new TH1F(locHistName.str().c_str(), locHistTitle.str().c_str(), locNumBinsConfidenceLevel, locRangeMinConfidenceLevel, locRangeMaxConfidenceLevel);
136 locHistName <<
"dh_ConfidenceLevel_Tracking_" << locPID;
137 locHistTitle.str(
"");
138 locHistTitle <<
"Tracking " << locParticleSymbol <<
" PID;Confidence Level";
139 loc1FHist =
new TH1F(locHistName.str().c_str(), locHistTitle.str().c_str(), locNumBinsConfidenceLevel, locRangeMinConfidenceLevel, locRangeMaxConfidenceLevel);
142 locHistName <<
"dh_ConfidenceLevel_DCdEdx_" << locPID;
143 locHistTitle.str(
"");
144 locHistTitle <<
"DC dEdx " << locParticleSymbol <<
" PID;Confidence Level";
145 loc1FHist =
new TH1F(locHistName.str().c_str(), locHistTitle.str().c_str(), locNumBinsConfidenceLevel, locRangeMinConfidenceLevel, locRangeMaxConfidenceLevel);
148 locHistName <<
"dh_ConfidenceLevel_Timing_" << locPID;
149 locHistTitle.str(
"");
150 locHistTitle <<
"Timing " << locParticleSymbol <<
" PID;Confidence Level";
151 loc1FHist =
new TH1F(locHistName.str().c_str(), locHistTitle.str().c_str(), locNumBinsConfidenceLevel, locRangeMinConfidenceLevel, locRangeMaxConfidenceLevel);
154 locHistName <<
"dh_ConfidenceLevel_TOFdEdx_" << locPID;
155 locHistTitle.str(
"");
156 locHistTitle <<
"TOFdEdx " << locParticleSymbol <<
" PID;Confidence Level";
157 loc1FHist =
new TH1F(locHistName.str().c_str(), locHistTitle.str().c_str(), locNumBinsConfidenceLevel, locRangeMinConfidenceLevel, locRangeMaxConfidenceLevel);
160 locHistName <<
"dh_ConfidenceLevel_BCALdEdx_" << locPID;
161 locHistTitle.str(
"");
162 locHistTitle <<
"BCALdEdx " << locParticleSymbol <<
" PID;Confidence Level";
163 loc1FHist =
new TH1F(locHistName.str().c_str(), locHistTitle.str().c_str(), locNumBinsConfidenceLevel, locRangeMinConfidenceLevel, locRangeMaxConfidenceLevel);
173 TString option = GetOption();
199 if((entry % 1000) == 0)
200 cout <<
"entry " << (entry + 1) <<
" of " <<
fChain->GetEntries() << endl;
202 unsigned int loc_i, loc_j;
205 float locFOM, locThrownP, locThrownTheta_Degrees;
207 DLorentzVector locThrownFourMomentum, locThrownSpacetimeVertex, locFourMomentum, locSpacetimeVertex;
210 ostringstream locHistName;
214 locThrownID = locMCReconstructionStatus->
dThrownID;
219 locThrownP = locThrownFourMomentum.P();
223 locHistName <<
"dh_GeneratedTracksPVsTheta_" << int(locThrownID);
224 loc2FHist = (TH2F*)gDirectory->Get(locHistName.str().c_str());
225 loc2FHist->Fill(locThrownTheta_Degrees, locThrownP);
229 locHistName <<
"dh_NonReconstructedTracksPVsTheta_" << int(locThrownID);
230 loc2FHist = (TH2F*)gDirectory->Get(locHistName.str().c_str());
231 loc2FHist->Fill(locThrownTheta_Degrees, locThrownP);
236 locPID = locReconstructedHypothesis->
dPID;
242 locHistName <<
"dh_ReconstructedTracksPVsTheta_" << int(locThrownID);
243 loc2FHist = (TH2F*)gDirectory->Get(locHistName.str().c_str());
244 loc2FHist->Fill(locThrownTheta_Degrees, locThrownP);
246 if(locThrownID == locPID){
248 locHistName <<
"dh_IdentifiedTracksPVsTheta_" << int(locThrownID);
249 loc2FHist = (TH2F*)gDirectory->Get(locHistName.str().c_str());
250 loc2FHist->Fill(locThrownTheta_Degrees, locThrownP);
253 locHistName <<
"dh_MisIdentifiedTracksPVsTheta_" << int(locThrownID);
254 loc2FHist = (TH2F*)gDirectory->Get(locHistName.str().c_str());
255 loc2FHist->Fill(locThrownTheta_Degrees, locThrownP);
258 locHistName <<
"dh_MisIdentifiedAsTracksPVsTheta_" << int(locThrownID) <<
"_" << int(locPID);
259 loc2FHist = (TH2F*)gDirectory->Get(locHistName.str().c_str());
260 if(loc2FHist != NULL)
261 loc2FHist->Fill(locThrownTheta_Degrees, locThrownP);
266 if(locThrownID == locPID){
269 locHistName <<
"dh_ConfidenceLevel_Overall_" << int(locThrownID);
270 loc1FHist = (TH1F*)gDirectory->Get(locHistName.str().c_str());
271 loc1FHist->Fill(locFOM);
275 locHistName <<
"dh_ConfidenceLevel_Tracking_" << int(locThrownID);
276 loc1FHist = (TH1F*)gDirectory->Get(locHistName.str().c_str());
277 loc1FHist->Fill(locFOM);
281 locHistName <<
"dh_ConfidenceLevel_DCdEdx_" << int(locThrownID);
282 loc1FHist = (TH1F*)gDirectory->Get(locHistName.str().c_str());
283 loc1FHist->Fill(locFOM);
287 locHistName <<
"dh_ConfidenceLevel_Timing_" << int(locThrownID);
288 loc1FHist = (TH1F*)gDirectory->Get(locHistName.str().c_str());
289 loc1FHist->Fill(locFOM);
306 if((
int(locThrownID) == 8) && (locThrownP > 1.5) && (locThrownP < 3.0) && (locThrownTheta_Degrees > 30.0) && (locThrownTheta_Degrees < 120.0)){
309 locHistName <<
"dh_ConfidenceLevel_ProblemArea_Timing_" << int(locThrownID) <<
"_" << int(locPID);
310 loc1FHist = (TH1F*)gDirectory->Get(locHistName.str().c_str());
311 if(loc1FHist != NULL)
312 loc1FHist->Fill(locFOM);
316 locHistName <<
"dh_ConfidenceLevel_ProblemArea_DCdEdx_" << int(locThrownID) <<
"_" << int(locPID);
317 loc1FHist = (TH1F*)gDirectory->Get(locHistName.str().c_str());
318 if(loc1FHist != NULL)
319 loc1FHist->Fill(locFOM);
DLorentzVector dFourMomentum
virtual Int_t GetEntry(Long64_t entry, Int_t getall=0)
virtual void SlaveTerminate()
TLorentzVector DLorentzVector
DLorentzVector dSpacetimeVertex
DLorentzVector dThrownSpacetimeVertex
vector< ReconstructedHypothesis * > dReconstructedHypothesisVector
DLorentzVector dThrownFourMomentum
double Convert_RadiansToDegrees(double locRadians)
vector< MCReconstructionStatus * > dMCReconstructionStatusVector
virtual void Begin(TTree *tree)
virtual void SlaveBegin(TTree *tree)
virtual Bool_t Process(Long64_t entry)