1 #define TrackEff2Selector_cxx
37 TString option = GetOption();
39 dOutputFile =
new TFile(
"dh_TrackEff2Hists.root",
"RECREATE");
41 unsigned int locNumPBins = 100;
42 unsigned int locNumThetaBins = 140;
43 unsigned int locNumDeltaPOverPBins = 1000;
44 unsigned int locNumDeltaPtOverPtBins = 1000;
45 unsigned int locNumDeltaThetaBins = 480;
46 unsigned int locNumDeltaPhiBins = 800;
47 unsigned int locNumConLevBins = 500;
49 double locMinP = 0.0, locMaxP = 2.0;
50 double locMinTheta = 0.0, locMaxTheta = 140.0;
51 double locMinConLev = 0.0, locMaxConLev = 1.0;
53 double locMinDeltaPOverP = -0.4, locMaxDeltaPOverP = 0.4;
54 double locMinDeltaPtOverPt = -0.4, locMaxDeltaPtOverPt = 0.4;
55 double locMinDeltaTheta = -12.0, locMaxDeltaTheta = 12.0;
56 double locMinDeltaPhi = -40.0, locMaxDeltaPhi = 40.0;
58 double locMinDeltaPOverP_WrongCharge = -50.0, locMaxDeltaPOverP_WrongCharge = 50.0;
59 double locMinDeltaPtOverPt_WrongCharge = -50.0, locMaxDeltaPtOverPt_WrongCharge = 50.0;
60 double locMinDeltaTheta_WrongCharge = -360.0, locMaxDeltaTheta_WrongCharge = 360.0;
61 double locMinDeltaPhi_WrongCharge = -360.0, locMaxDeltaPhi_WrongCharge = 360.0;
64 dSelectorHist_TrackEff2_CandidateReconstructed =
new TH2F(
"dSelectorHist_TrackEff2_CandidateReconstructed",
"Reconstructed Track Candidates;#theta#circ;p (GeV/c)", locNumThetaBins, locMinTheta, locMaxTheta, locNumPBins, locMinP, locMaxP);
65 dSelectorHist_TrackEff2_CandidateMissing =
new TH2F(
"dSelectorHist_TrackEff2_CandidateMissing",
"Missing Track Candidates;#theta#circ;p (GeV/c)", locNumThetaBins, locMinTheta, locMaxTheta, locNumPBins, locMinP, locMaxP);
66 dSelectorHist_TrackEff2_WireBasedReconstructed =
new TH2F(
"dSelectorHist_TrackEff2_WireBasedReconstructed",
"Reconstructed Wire Based Tracks;#theta#circ;p (GeV/c)", locNumThetaBins, locMinTheta, locMaxTheta, locNumPBins, locMinP, locMaxP);
67 dSelectorHist_TrackEff2_WireBasedMissing =
new TH2F(
"dSelectorHist_TrackEff2_WireBasedMissing",
"Missing Wire Based Tracks;#theta#circ;p (GeV/c)", locNumThetaBins, locMinTheta, locMaxTheta, locNumPBins, locMinP, locMaxP);
68 dSelectorHist_TrackEff2_TimeBasedReconstructed =
new TH2F(
"dSelectorHist_TrackEff2_TimeBasedReconstructed",
"Reconstructed Time Based Tracks;#theta#circ;p (GeV/c)", locNumThetaBins, locMinTheta, locMaxTheta, locNumPBins, locMinP, locMaxP);
69 dSelectorHist_TrackEff2_TimeBasedMissing =
new TH2F(
"dSelectorHist_TrackEff2_TimeBasedMissing",
"Missing Time Based Tracks;#theta#circ;p (GeV/c)", locNumThetaBins, locMinTheta, locMaxTheta, locNumPBins, locMinP, locMaxP);
71 dSelectorHist_TrackEff2_CandidateChargeCorrect =
new TH2F(
"dSelectorHist_TrackEff2_CandidateChargeCorrect",
"Correct Charge Track Candidates;#theta#circ;p (GeV/c)", locNumThetaBins, locMinTheta, locMaxTheta, locNumPBins, locMinP, locMaxP);
72 dSelectorHist_TrackEff2_CandidateChargeWrong =
new TH2F(
"dSelectorHist_TrackEff2_CandidateChargeWrong",
"Incorrect Charge Track Candidates;#theta#circ;p (GeV/c)", locNumThetaBins, locMinTheta, locMaxTheta, locNumPBins, locMinP, locMaxP);
73 dSelectorHist_TrackEff2_WireBasedChargeCorrect =
new TH2F(
"dSelectorHist_TrackEff2_WireBasedChargeCorrect",
"Correct Charge Wire Based Tracks;#theta#circ;p (GeV/c)", locNumThetaBins, locMinTheta, locMaxTheta, locNumPBins, locMinP, locMaxP);
74 dSelectorHist_TrackEff2_WireBasedChargeWrong =
new TH2F(
"dSelectorHist_TrackEff2_WireBasedChargeWrong",
"Incorrect Charge Wire Based Tracks;#theta#circ;p (GeV/c)", locNumThetaBins, locMinTheta, locMaxTheta, locNumPBins, locMinP, locMaxP);
75 dSelectorHist_TrackEff2_TimeBasedChargeCorrect =
new TH2F(
"dSelectorHist_TrackEff2_TimeBasedChargeCorrect",
"Correct Charge Time Based Tracks;#theta#circ;p (GeV/c)", locNumThetaBins, locMinTheta, locMaxTheta, locNumPBins, locMinP, locMaxP);
76 dSelectorHist_TrackEff2_TimeBasedChargeWrong =
new TH2F(
"dSelectorHist_TrackEff2_TimeBasedChargeWrong",
"Incorrect Charge Time Based Tracks;#theta#circ;p (GeV/c)", locNumThetaBins, locMinTheta, locMaxTheta, locNumPBins, locMinP, locMaxP);
79 dSelectorHist_TrackEff2_WireBasedConLev =
new TH1F(
"dSelectorHist_TrackEff2_WireBasedConLev",
"Correct Charge Wire Based Tracks;Wire Based Track Reconstruction Confidence Level", locNumConLevBins, locMinConLev, locMaxConLev);
80 dSelectorHist_TrackEff2_TimeBasedConLev =
new TH1F(
"dSelectorHist_TrackEff2_TimeBasedConLev",
"Correct Charge Time Based Tracks;Time Based Track Reconstruction Confidence Level", locNumConLevBins, locMinConLev, locMaxConLev);
81 dSelectorHist_TrackEff2_WireBasedLowConLev =
new TH2F(
"dSelectorHist_TrackEff2_WireBasedChargeCorrectLowConLev",
"Correct Charge Wire Based Tracks, Confidence Level <= 0.01;#theta#circ;p (GeV/c)", locNumThetaBins, locMinTheta, locMaxTheta, locNumPBins, locMinP, locMaxP);
82 dSelectorHist_TrackEff2_WireBasedNonLowConLev =
new TH2F(
"dSelectorHist_TrackEff2_WireBasedChargeCorrectNonLowConLev",
"Correct Charge Wire Based Tracks, Confidence Level > 0.01;#theta#circ;p (GeV/c)", locNumThetaBins, locMinTheta, locMaxTheta, locNumPBins, locMinP, locMaxP);
83 dSelectorHist_TrackEff2_TimeBasedLowConLev =
new TH2F(
"dSelectorHist_TrackEff2_TimeBasedChargeCorrectLowConLev",
"Correct Charge Time Based Tracks, Confidence Level <= 0.01;#theta#circ;p (GeV/c)", locNumThetaBins, locMinTheta, locMaxTheta, locNumPBins, locMinP, locMaxP);
84 dSelectorHist_TrackEff2_TimeBasedNonLowConLev =
new TH2F(
"dSelectorHist_TrackEff2_TimeBasedChargeCorrectNonLowConLev",
"Correct Charge Time Based Tracks, Confidence Level > 0.01;#theta#circ;p (GeV/c)", locNumThetaBins, locMinTheta, locMaxTheta, locNumPBins, locMinP, locMaxP);
89 dSelectorHist_TrackEff2_CandidateChargeWrong_DeltaPOverPVsTheta =
new TH2F(
"dSelectorHist_TrackEff2_CandidateChargeWrong_DeltaPOverPVsTheta",
"Incorrect Charge Track Candidates;#theta#circ;#Deltap/p", locNumThetaBins, locMinTheta, locMaxTheta, locNumDeltaPOverPBins, locMinDeltaPOverP_WrongCharge, locMaxDeltaPOverP_WrongCharge);
91 dSelectorHist_TrackEff2_WireBasedChargeWrong_DeltaPOverPVsTheta =
new TH2F(
"dSelectorHist_TrackEff2_WireBasedChargeWrong_DeltaPOverPVsTheta",
"Incorrect Charge Wire Based Tracks;#theta#circ;#Deltap/p", locNumThetaBins, locMinTheta, locMaxTheta, locNumDeltaPOverPBins, locMinDeltaPOverP_WrongCharge, locMaxDeltaPOverP_WrongCharge);
93 dSelectorHist_TrackEff2_TimeBasedChargeWrong_DeltaPOverPVsTheta =
new TH2F(
"dSelectorHist_TrackEff2_TimeBasedChargeWrong_DeltaPOverPVsTheta",
"Incorrect Charge Time Based Tracks;#theta#circ;#Deltap/p", locNumThetaBins, locMinTheta, locMaxTheta, locNumDeltaPOverPBins, locMinDeltaPOverP_WrongCharge, locMaxDeltaPOverP_WrongCharge);
96 dSelectorHist_TrackEff2_CandidateChargeWrong_DeltaPtOverPtVsTheta =
new TH2F(
"dSelectorHist_TrackEff2_CandidateChargeWrong_DeltaPtOverPtVsTheta",
"Incorrect Charge Track Candidates;#theta#circ;#Deltap_{T}/p_{T}", locNumThetaBins, locMinTheta, locMaxTheta, locNumDeltaPtOverPtBins, locMinDeltaPtOverPt_WrongCharge, locMaxDeltaPtOverPt_WrongCharge);
98 dSelectorHist_TrackEff2_WireBasedChargeWrong_DeltaPtOverPtVsTheta =
new TH2F(
"dSelectorHist_TrackEff2_WireBasedChargeWrong_DeltaPtOverPtVsTheta",
"Incorrect Charge Wire Based Tracks;#theta#circ;#Deltap_{T}/p_{T}", locNumThetaBins, locMinTheta, locMaxTheta, locNumDeltaPtOverPtBins, locMinDeltaPtOverPt_WrongCharge, locMaxDeltaPtOverPt_WrongCharge);
100 dSelectorHist_TrackEff2_TimeBasedChargeWrong_DeltaPtOverPtVsTheta =
new TH2F(
"dSelectorHist_TrackEff2_TimeBasedChargeWrong_DeltaPtOverPtVsTheta",
"Incorrect Charge Time Based Tracks;#theta#circ;#Deltap_{T}/p_{T}", locNumThetaBins, locMinTheta, locMaxTheta, locNumDeltaPtOverPtBins, locMinDeltaPtOverPt_WrongCharge, locMaxDeltaPtOverPt_WrongCharge);
103 dSelectorHist_TrackEff2_CandidateChargeWrong_DeltaThetaVsTheta =
new TH2F(
"dSelectorHist_TrackEff2_CandidateChargeWrong_DeltaThetaVsTheta",
"Incorrect Charge Track Candidates;#theta#circ;#Delta#theta#circ", locNumThetaBins, locMinTheta, locMaxTheta, locNumDeltaThetaBins, locMinDeltaTheta_WrongCharge, locMaxDeltaTheta_WrongCharge);
105 dSelectorHist_TrackEff2_WireBasedChargeWrong_DeltaThetaVsTheta =
new TH2F(
"dSelectorHist_TrackEff2_WireBasedChargeWrong_DeltaThetaVsTheta",
"Incorrect Charge Wire Based Tracks;#theta#circ;#Delta#theta#circ", locNumThetaBins, locMinTheta, locMaxTheta, locNumDeltaThetaBins, locMinDeltaTheta_WrongCharge, locMaxDeltaTheta_WrongCharge);
107 dSelectorHist_TrackEff2_TimeBasedChargeWrong_DeltaThetaVsTheta =
new TH2F(
"dSelectorHist_TrackEff2_TimeBasedChargeWrong_DeltaThetaVsTheta",
"Incorrect Charge Time Based Tracks;#theta#circ;#Delta#theta#circ", locNumThetaBins, locMinTheta, locMaxTheta, locNumDeltaThetaBins, locMinDeltaTheta_WrongCharge, locMaxDeltaTheta_WrongCharge);
110 dSelectorHist_TrackEff2_CandidateChargeWrong_DeltaPhiVsTheta =
new TH2F(
"dSelectorHist_TrackEff2_CandidateChargeWrong_DeltaPhiVsTheta",
"Incorrect Charge Track Candidates;#theta#circ;#Delta#phi#circ", locNumThetaBins, locMinTheta, locMaxTheta, locNumDeltaPhiBins, locMinDeltaPhi_WrongCharge, locMaxDeltaPhi_WrongCharge);
112 dSelectorHist_TrackEff2_WireBasedChargeWrong_DeltaPhiVsTheta =
new TH2F(
"dSelectorHist_TrackEff2_WireBasedChargeWrong_DeltaPhiVsTheta",
"Incorrect Charge Wire Based Tracks;#theta#circ;#Delta#phi#circ", locNumThetaBins, locMinTheta, locMaxTheta, locNumDeltaPhiBins, locMinDeltaPhi_WrongCharge, locMaxDeltaPhi_WrongCharge);
114 dSelectorHist_TrackEff2_TimeBasedChargeWrong_DeltaPhiVsTheta =
new TH2F(
"dSelectorHist_TrackEff2_TimeBasedChargeWrong_DeltaPhiVsTheta",
"Incorrect Charge Time Based Tracks;#theta#circ;#Delta#phi#circ", locNumThetaBins, locMinTheta, locMaxTheta, locNumDeltaPhiBins, locMinDeltaPhi_WrongCharge, locMaxDeltaPhi_WrongCharge);
123 TString option = GetOption();
154 if((entry % 1000) == 0)
155 cout <<
"entry = " << entry << endl;
161 double locThrownTheta_Degrees = locP3_Thrown.Theta()*180.0/TMath::Pi();
162 double locThrownMomentum = locP3_Thrown.Mag();
163 double delta_p_over_p_can = (locP3_Candidate.Mag() - locThrownMomentum)/locThrownMomentum;
164 double delta_p_over_p_wire = (locP3_WireBased.Mag() - locThrownMomentum)/locThrownMomentum;
165 double delta_p_over_p = (locP3_TimeBased.Mag() - locThrownMomentum)/locThrownMomentum;
168 double locFOM_Cutoff = 0.01;
169 double delta_phi_can_deg =
delta_phi_can*180.0/(1000.0*TMath::Pi());
170 double delta_phi_wire_deg =
delta_phi_wire*180.0/(1000.0*TMath::Pi());
171 double delta_phi_deg =
delta_phi*180.0/(1000.0*TMath::Pi());
172 double delta_theta_can_deg =
delta_theta_can*180.0/(1000.0*TMath::Pi());
174 double delta_theta_deg =
delta_theta*180.0/(1000.0*TMath::Pi());
217 if(locFOM_WireBased <= locFOM_Cutoff)
224 if(locFOM_TimeBased <= locFOM_Cutoff)
TH1F * dSelectorHist_TrackEff2_TimeBasedConLev
TH2F * dSelectorHist_TrackEff2_WireBasedChargeWrong_DeltaPhiVsTheta
TH2F * dSelectorHist_TrackEff2_WireBasedChargeWrong_DeltaPtOverPtVsTheta
TH2F * dSelectorHist_TrackEff2_WireBasedReconstructed
TH2F * dSelectorHist_TrackEff2_WireBasedChargeWrong
Double_t delta_theta_wire
TH2F * dSelectorHist_TrackEff2_TimeBasedChargeCorrect_DeltaPtOverPtVsTheta
TH2F * dSelectorHist_TrackEff2_WireBasedChargeCorrect
Bool_t dTrackReconstructedFlag_Candidate
TH2F * dSelectorHist_TrackEff2_CandidateChargeCorrect_DeltaPtOverPtVsTheta
Double_t delta_pt_over_pt
TH2F * dSelectorHist_TrackEff2_TimeBasedChargeCorrect
TH2F * dSelectorHist_TrackEff2_TimeBasedChargeCorrect_DeltaPhiVsTheta
TH2F * dSelectorHist_TrackEff2_WireBasedChargeWrong_DeltaPOverPVsTheta
TH2F * dSelectorHist_TrackEff2_WireBasedChargeCorrect_DeltaThetaVsTheta
Double_t delta_pt_over_pt_can
TH2F * dSelectorHist_TrackEff2_WireBasedChargeWrong_DeltaThetaVsTheta
virtual Int_t GetEntry(Long64_t entry, Int_t getall=0)
TH2F * dSelectorHist_TrackEff2_CandidateChargeCorrect_DeltaPOverPVsTheta
TH2F * dSelectorHist_TrackEff2_CandidateChargeCorrect_DeltaThetaVsTheta
Bool_t dTrackReconstructedFlag_WireBased
TH2F * dSelectorHist_TrackEff2_TimeBasedReconstructed
TH2F * dSelectorHist_TrackEff2_CandidateChargeCorrect_DeltaPhiVsTheta
virtual void SlaveBegin(TTree *tree)
TH2F * dSelectorHist_TrackEff2_CandidateReconstructed
TH2F * dSelectorHist_TrackEff2_CandidateChargeWrong_DeltaPhiVsTheta
TH2F * dSelectorHist_TrackEff2_WireBasedMissing
TH2F * dSelectorHist_TrackEff2_WireBasedChargeCorrect_DeltaPOverPVsTheta
TH2F * dSelectorHist_TrackEff2_TimeBasedNonLowConLev
TH2F * dSelectorHist_TrackEff2_TimeBasedMissing
TH2F * dSelectorHist_TrackEff2_CandidateChargeCorrect
TH2F * dSelectorHist_TrackEff2_WireBasedNonLowConLev
TH2F * dSelectorHist_TrackEff2_TimeBasedChargeWrong_DeltaPOverPVsTheta
TH2F * dSelectorHist_TrackEff2_TimeBasedLowConLev
TH2F * dSelectorHist_TrackEff2_CandidateChargeWrong
Bool_t dTrackReconstructedFlag_TimeBased
Double_t delta_pt_over_pt_wire
TH2F * dSelectorHist_TrackEff2_TimeBasedChargeCorrect_DeltaThetaVsTheta
TH2F * dSelectorHist_TrackEff2_TimeBasedChargeWrong_DeltaPtOverPtVsTheta
virtual Bool_t Process(Long64_t entry)
TH2F * dSelectorHist_TrackEff2_WireBasedChargeCorrect_DeltaPhiVsTheta
TH2F * dSelectorHist_TrackEff2_TimeBasedChargeWrong_DeltaThetaVsTheta
virtual void Begin(TTree *tree)
TH2F * dSelectorHist_TrackEff2_TimeBasedChargeWrong
TH2F * dSelectorHist_TrackEff2_TimeBasedChargeCorrect_DeltaPOverPVsTheta
TH1F * dSelectorHist_TrackEff2_WireBasedConLev
TH2F * dSelectorHist_TrackEff2_CandidateChargeWrong_DeltaPOverPVsTheta
TH2F * dSelectorHist_TrackEff2_TimeBasedChargeWrong_DeltaPhiVsTheta
TH2F * dSelectorHist_TrackEff2_WireBasedChargeCorrect_DeltaPtOverPtVsTheta
TH2F * dSelectorHist_TrackEff2_CandidateChargeWrong_DeltaPtOverPtVsTheta
TH2F * dSelectorHist_TrackEff2_CandidateChargeWrong_DeltaThetaVsTheta
virtual void SlaveTerminate()
TH2F * dSelectorHist_TrackEff2_CandidateMissing
TH2F * dSelectorHist_TrackEff2_WireBasedLowConLev