CbmRoot
CbmAnaDielectronTask.h
Go to the documentation of this file.
1 
7 #ifndef CBM_ANA_DIELECTRON_TASK_H
8 #define CBM_ANA_DIELECTRON_TASK_H
9 
10 #include "CbmGlobalTrack.h"
11 #include "CbmKFVertex.h"
12 #include "CbmLmvmCandidate.h"
13 #include "CbmLmvmCuts.h"
14 #include "CbmLmvmHist.h"
15 #include "CbmLmvmKinematicParams.h"
16 #include "CbmMCTrack.h"
17 #include "CbmStsKFTrackFitter.h"
18 #include "CbmStsTrack.h"
19 #include "CbmTrdTrack.h"
20 #include "CbmVertex.h"
21 #include "FairBaseParSet.h"
22 #include "FairMCEventHeader.h"
23 #include "FairTask.h"
25 
26 #include <fstream>
27 #include <map>
28 #include <string>
29 #include <vector>
30 
31 class TClonesArray;
32 class TH2D;
33 class TH1D;
34 class TH2F;
35 class TRandom3;
36 class FairRootManager;
37 
38 
39 class CbmAnaDielectronTask : public FairTask {
40 
41 public:
42  /*
43  * \brief Standard constructor.
44  */
46 
47  /*
48  * \brief Standard destructor.
49  */
50  virtual ~CbmAnaDielectronTask();
51 
52  /*
53  * \brief Inherited from FairTask.
54  */
55  virtual InitStatus Init();
56 
57  /*
58  * \brief Inherited from FairTask.
59  */
60  virtual void Exec(Option_t* option);
61 
62  /*
63  * \brief Creates 1D histograms for each analysis step.
64  * \param[in,out] hist Vector if the histograms for each analysis step.
65  * \param[in] name Base name of the histograms.
66  * \param[in] axisX X axis title.
67  * \param[in] axisY Y axis title.
68  * \param[in] nBins Number of bins in the histogram.
69  * \param[in] min Minimum value.
70  * \param[in] max Maximum value.
71  */
72  void CreateAnalysisStepsH1(std::vector<TH1D*>& hist,
73  const std::string& name,
74  const std::string& axisX,
75  const std::string& axisY,
76  double nBins,
77  double min,
78  double max);
79 
80 
81  /*
82  * \brief Creates 2D histograms for each analysis step.
83  * \param[in,out] hist Vector if the histograms for each analysis step.
84  * \param[in] name Base name of the histograms.
85  * \param[in] axisX X axis title.
86  * \param[in] axisY Y axis title.
87  * \param[in] axisZ Z axis title.
88  * \param[in] nBinsX Number of bins for X axis in the histogram.
89  * \param[in] minX Minimum value for X axis.
90  * \param[in] maxX Maximum value for X axis.
91  * \param[in] nBinsY Number of bins for Y axis in the histogram.
92  * \param[in] minY Minimum value for Y axis.
93  * \param[in] maxY Maximum value for Y axis.
94  */
95  void CreateAnalysisStepsH2(std::vector<TH2D*>& hist,
96  const std::string& name,
97  const std::string& axisX,
98  const std::string& axisY,
99  const std::string& axisZ,
100  double nBinsX,
101  double minX,
102  double maxX,
103  double nBinsY,
104  double minY,
105  double maxY);
106 
107  /*
108  * \brief Creates 1D histograms for different track source types.
109  * \param[in,out] hist Vector if the histograms for each analysis step.
110  * \param[in] name Base name of the histograms.
111  * \param[in] axisX X axis title.
112  * \param[in] axisY Y axis title.
113  * \param[in] nBins Number of bins in the histogram.
114  * \param[in] min Minimum value.
115  * \param[in] max Maximum value.
116  */
117  void CreateSourceTypesH1(std::vector<TH1D*>& hist,
118  const std::string& name,
119  const std::string& axisX,
120  const std::string& axisY,
121  double nBins,
122  double min,
123  double max);
124 
125 
126  /*
127  * \brief Creates 2D histograms for different track source types.
128  * \param[in,out] hist Vector if the histograms for each analysis step.
129  * \param[in] name Base name of the histograms.
130  * \param[in] axisX X axis title.
131  * \param[in] axisY Y axis title.
132  * \param[in] axisZ Z axis title.
133  * \param[in] nBinsX Number of bins for X axis in the histogram.
134  * \param[in] minX Minimum value for X axis.
135  * \param[in] maxX Maximum value for X axis.
136  * \param[in] nBinsY Number of bins for Y axis in the histogram.
137  * \param[in] minY Minimum value for Y axis.
138  * \param[in] maxY Maximum value for Y axis.
139  */
140  void CreateSourceTypesH2(std::vector<TH2D*>& hist,
141  const std::string& name,
142  const std::string& axisX,
143  const std::string& axisY,
144  const std::string& axisZ,
145  double nBinsX,
146  double minX,
147  double maxX,
148  double nBinsY,
149  double minY,
150  double maxY);
151 
152 
153  /*
154  * \brief Fills histograms for pairs.
155  * \param[in] candP Positive candidate.
156  * \param[in] candM Negative candidate.
157  * \param[in] step Enumeration AnalysisSteps, specify analysis step.
158  * \param[in] parRec Kinematic parameters for reconstructed pair.
159  */
160  void PairSource(CbmLmvmCandidate* candP,
161  CbmLmvmCandidate* candM,
163  CbmLmvmKinematicParams* parRec);
164 
165  /*
166  * \brief Fills minv, pty, mom histograms for specified analysis step.
167  * \param[in] candP Positive candidate.
168  * \param[in] candM Negative candidate.
169  * \param[in] parMc MC kinematic parameters.
170  * \param[in] parRec Reconstructed kinematic parameters.
171  * \param[in] step Enumeration AnalysisSteps, specify analysis step.
172  */
173  void FillPairHists(CbmLmvmCandidate* candP,
174  CbmLmvmCandidate* candM,
175  CbmLmvmKinematicParams* parMc,
176  CbmLmvmKinematicParams* parRec,
177  CbmLmvmAnalysisSteps step);
178 
179  void
180  TrackSource(CbmLmvmCandidate* cand, CbmLmvmAnalysisSteps step, Int_t pdg);
181 
183 
184  void FillRichRingNofHits();
185 
186  Bool_t IsMcTrackAccepted(Int_t mcTrackInd);
187 
188  void RichPmtXY();
189 
190  void MCPairs();
191 
192  void PairMcAndAcceptance();
193 
194  void FillTopologyCandidates();
195 
196  void FillCandidates();
197 
198 
199  void AssignMcToCandidates();
200 
201  void
202  AssignMcToTopologyCandidates(std::vector<CbmLmvmCandidate>& cutCandidates);
203 
204  void DifferenceSignalAndBg();
205 
206  /*
207  * \brief Initialize all histograms.
208  */
209  void InitHists();
210 
211  void SignalAndBgReco();
212 
213  void CheckGammaConvAndPi0();
214 
216 
217  /*
218  * \brief
219  * \param[in] mvdStationNum MVD station number.
220  * \param[in, out] hist Vector of histograms for different source types.
221  */
222  void CheckClosestMvdHit(Int_t mvdStationNum,
223  std::vector<TH2D*>& hist,
224  std::vector<TH1D*>& histQa);
225 
226  /*
227  * \brief Set cut values and fill histograms for topology cut
228  * \param[in] cutName ST or TT
229  */
230  void CheckTopologyCut(const std::string& cutName,
231  const std::vector<CbmLmvmCandidate>& cutCandidates,
232  const std::vector<TH2D*>& hcut,
233  const std::vector<TH2D*>& hcutPion,
234  const std::vector<TH2D*>& hcutTruepair,
235  Double_t angleCut,
236  Double_t ppCut);
237 
238  void CalculateNofTopologyPairs(TH1D* h_nof_pairs, const std::string& source);
239 
240  void MvdCutMcDistance();
241 
242  virtual void Finish();
243 
244  void FillElPiMomHist();
245 
246 
248 
249 private:
252 
253  Bool_t IsMismatch(CbmLmvmCandidate* cand);
254 
255  Bool_t IsGhost(CbmLmvmCandidate* cand);
256 
257  void
258  IsElectron(Int_t globalTrackIndex, Double_t momentum, CbmLmvmCandidate* cand);
259 
260  FairMCEventHeader* fMCEventHeader;
261  TClonesArray* fMCTracks;
262  TClonesArray* fRichRings;
263  TClonesArray* fRichProj;
264  TClonesArray* fRichPoints;
265  TClonesArray* fRichRingMatches;
266  TClonesArray* fRichHits;
267  TClonesArray* fGlobalTracks;
268  TClonesArray* fStsTracks;
269  TClonesArray* fStsTrackMatches;
270  TClonesArray* fStsHits;
271  TClonesArray* fMvdHits;
272  TClonesArray* fMvdPoints;
273  TClonesArray* fMvdHitMatches;
274  TClonesArray* fTrdTracks;
275  TClonesArray* fTrdHits;
276  TClonesArray* fTrdTrackMatches;
277  TClonesArray* fTofHits;
278  TClonesArray* fTofHitsMatches;
279  TClonesArray* fTofPoints;
283 
284  //CbmLitMCTrackCreator* fMCTrackCreator; // MC track creator tool
285 
286  Bool_t fUseMvd;
287  Bool_t fUseRich;
288  Bool_t fUseTrd;
289  Bool_t fUseTof;
290 
291  std::vector<CbmLmvmCandidate> fCandidates;
292  std::vector<CbmLmvmCandidate>
293  fSTCandidates; // STCut Segmented tracks, reconstructed only in STS
294  std::vector<CbmLmvmCandidate>
295  fTTCandidates; // TTCut Reconstructed tracks, reconstructed in all detectors but not identified as electrons
296  std::vector<CbmLmvmCandidate>
297  fRTCandidates; // RTCut Reconstructed tracks, reconstructed in STS + at least in one of the detectro (RICH, TRD, TOF)
298 
299  Double_t fWeight; //Multiplicity*BR
300 
301  Double_t
302  fPionMisidLevel; // For the ideal particle identification cases, set to -1 for real PID
303  TRandom3* fRandom3;
304 
305  //Bool_t fUseMcMomentum;
306 
307  CbmLmvmCuts fCuts; // electorn identification and analisys cuts
308 
309  std::vector<TH1*> fHistoList; //list of all histograms
310 
311  // Number of hits in the MC RICH ring
312  std::map<Int_t, Int_t> fNofHitsInRingMap;
313 
314  TH2D* fh_mc_signal_mom_angle; // angle vs. sqrt(mom1*mom2) with MCTracks
315 
316  TH1D* fh_nof_charged_particles; //charged UrQMD particles
317  TH1D* fh_nof_charged_particles_acc; //accepted charged UrQMD particles
318 
319  TH1D* fh_mc_mother_pdg; //mother pdg code for e-/e+
320  TH1D* fh_acc_mother_pdg; //mother pdg code for accepted e-/e+
321 
322  // X-Y distribution of MC pints on the RICH PMT plane
326 
327  // Vertex of secondary electron from gamma conversion for different analysis step
328  //Index is the analysis step: [0]-mc, [1]-acc, [2]-reco, [3]-chi2prim, [4]-elid,
329  // [5]-gamma cut, [6]-mvd1cut, [7]-mvd2cut, [8]-stcut, [9]-ttcut, [10]-ptcut.
330  std::vector<TH2D*> fh_vertex_el_gamma_xz;
331  std::vector<TH2D*> fh_vertex_el_gamma_yz;
332  std::vector<TH2D*> fh_vertex_el_gamma_xy;
333  std::vector<TH2D*> fh_vertex_el_gamma_rz; //r=sqrt(x^2+y^2)
334 
335  //Index is the analysis step: [0]-mc, [1]-acc, [2]-reco, [3]-chi2prim, [4]-elid,
336  // [5]-gamma cut, [6]-mvd1cut, [7]-mvd2cut, [8]-stcut, [9]-ttcut, [10]-ptcut.
337  //Use AnalysisSteps enumeration for access.
338  //MC and ACC histograms are not filled sometimes.
339  std::vector<TH1D*> fh_signal_minv; // Invariant mass for Signal
340  std::vector<TH1D*> fh_bg_minv; // Invariant mass for BG
341  std::vector<TH1D*> fh_pi0_minv; // Invariant mass for Pi0
342  std::vector<TH1D*> fh_eta_minv; // Invariant mass for Eta
343  std::vector<TH1D*> fh_gamma_minv; // Invariant mass for Eta
344  std::vector<TH1D*> fh_signal_mom; // Signal momentum distribution
345  std::vector<TH2D*> fh_signal_pty; // Pt/y distribution for signal
346  std::vector<TH2D*> fh_signal_minv_pt; // Invariant mass vs. MC Pt
347  std::vector<TH2D*> fh_eta_minv_pt; // Invariant mass vs. MC Pt
348  std::vector<TH2D*> fh_pi0_minv_pt; // Invariant mass vs. MC Pt
349 
350 
351  std::vector<TH1D*>
352  fh_bg_truematch_minv; // Invariant mass for truly matched tracks
353  std::vector<TH1D*>
354  fh_bg_truematch_el_minv; // Invariant mass for truly matched electron tracks
355  std::vector<TH1D*>
356  fh_bg_truematch_notel_minv; // Invariant mass for truly matched tracks, not 2 electrons
357  std::vector<TH1D*>
358  fh_bg_mismatch_minv; // Invariant mass for mis matches tracks
359 
360  //G-Gamma, P-Pi0, O-other
361  //e-e+
362  //[0]=G-G, [1]=P-P, [2]=O-O, [3]=G-P, [4]=G-O, [5]=P-O
363  std::vector<std::vector<TH1D*>>
364  fh_source_bg_minv; // Invariant mass for different source
365 
366 
367  //Index is the source type: [0]-signal, [1]-bg, [2]-pi0, [3]-gamma
368  //Use SourceTypes enumeration for access.
369  std::vector<TH1D*> fh_pt; // Transverse momentum of single track distribution
370  std::vector<TH1D*> fh_mom; //Momentum of the single track
371  std::vector<TH1D*> fh_chi2sts; // Chi2 of the STS tracks
372  std::vector<TH1D*> fh_chi2prim; // Chi2 of the primary vertex
373  std::vector<TH2D*> fh_ttcut; // TT cut
374  std::vector<TH2D*> fh_stcut; // ST cut
375  std::vector<TH2D*> fh_rtcut; // RT cut
376  std::vector<TH2D*> fh_mvd1cut; // MVD cut at the first station
377  std::vector<TH2D*> fh_mvd2cut; // MVD cut at the second station
378  std::vector<TH1D*> fh_richann; // RICH ANN
379  std::vector<TH1D*> fh_trdann; // TRD ANN
380  std::vector<TH2D*> fh_tofm2; // TOF m2
381  std::vector<TH2D*> fh_ttcut_pion;
382  std::vector<TH2D*> fh_ttcut_truepair;
383  std::vector<TH2D*> fh_stcut_pion;
384  std::vector<TH2D*> fh_stcut_truepair;
385  std::vector<TH2D*> fh_rtcut_pion;
386  std::vector<TH2D*> fh_rtcut_truepair;
387 
388  std::vector<TH1D*> fh_nofMvdHits; // number of MVD hits
389  std::vector<TH1D*> fh_nofStsHits; // number of STS hits
390  std::vector<TH2D*> fh_mvd1xy; // hit distribution in the first MVD station
391  std::vector<TH1D*> fh_mvd1r; // r = x^2+y^2
392  std::vector<TH2D*> fh_mvd2xy; // hit distribution in the second MVD station
393  std::vector<TH1D*> fh_mvd2r; // r = x^2+y^2
394 
395  //Distant to MVD hit from the same MotherId
400 
401  std::vector<TH1D*> fh_mvd1cut_qa; // MVD 1 cut quality
402  std::vector<TH1D*> fh_mvd2cut_qa; // MVD 2 cut quality
403 
404  //source of BG pairs 2D.
405  //second index is the analysis step: [0]-mc, [1]-acc, [2]-reco, [3]-chi2prim, [4]-elid,
406  // [5]-gamma cut, [6]-mvd1cut, [7]-mvd2cut, [8]-stcut, [9]-ttcut, [10]-ptcut.
407  //Use AnalysisSteps enumeration for access.
408  std::vector<TH2D*> fh_source_pairs_epem;
409 
410  //X axis: analysis step
411  //Y axis: [0]=G-G, [1]=P-P, [2]=O-O, [3]=G-P, [4]=G-O, [5]=P-O
413 
414  //store event number
416 
417  //nof signal and bg tracks after each cut
421 
424 
425  //nof gamma and pi0 pairs for different track categories : global, only STS or partially reconstructed
428 
429  //nof gamma and pi0 tracks for different track categories : global, only STS or partially reconstructed
432 
438 
439  //First index is the source type: [0]-signal, [1]-bg, [2]-pi0, [3]-gamma
440  //Use SourceTypes enumeration for access.
441  //second index is the analysis step: [0]-mc, [1]-acc, [2]-reco, [3]-chi2prim, [4]-elid,
442  // [5]-gamma cut, [6]-mvd1cut, [7]-mvd2cut, [8]-stcut, [9]-ttcut, [10]-ptcut.
443  //Use AnalysisSteps enumeration for access.
444  //Track momentum distribution for different sources after each cut.
445  std::vector<std::vector<TH1D*>> fh_source_mom;
446  //Pt distribution for different sources after each cut.
447  std::vector<std::vector<TH1D*>> fh_source_pt;
448  //Opening angle distribution for different sources after each cut.
449  std::vector<std::vector<TH1D*>> fh_opening_angle;
450 
451  //Pions vs momentum
459 
460  //Pions vs momentum for primary pions v < 0.1 cm
467 
472 
473 public:
474  void SetUseMvd(Bool_t use) { fUseMvd = use; };
475  void SetUseRich(Bool_t use) { fUseRich = use; };
476  void SetUseTrd(Bool_t use) { fUseTrd = use; };
477  void SetUseTof(Bool_t use) { fUseTof = use; };
478  void SetWeight(Double_t weight) { fWeight = weight; };
479  void SetEnergyAndPlutoParticle(const string& energy, const string& particle);
480 
481  void SetPionMisidLevel(Double_t level) { fPionMisidLevel = level; }
482  // void SetMomentumCut(Double_t mom) {fMomentumCut = mom;}
483 };
484 
485 #endif
CbmAnaDielectronTask::fSTCandidates
std::vector< CbmLmvmCandidate > fSTCandidates
Definition: CbmAnaDielectronTask.h:293
CbmAnaDielectronTask::fh_mvd1cut_mc_dist_pi0
TH1D * fh_mvd1cut_mc_dist_pi0
Definition: CbmAnaDielectronTask.h:397
CbmAnaDielectronTask::fRichRings
TClonesArray * fRichRings
Definition: CbmAnaDielectronTask.h:262
CbmLmvmCuts.h
CbmAnaDielectronTask::fh_nof_rec_pairs_pi0
TH1D * fh_nof_rec_pairs_pi0
Definition: CbmAnaDielectronTask.h:427
CbmVertex.h
CbmAnaDielectronTask::fUseMvd
Bool_t fUseMvd
Definition: CbmAnaDielectronTask.h:286
CbmAnaDielectronTask::fh_signal_pty
std::vector< TH2D * > fh_signal_pty
Definition: CbmAnaDielectronTask.h:345
CbmAnaDielectronTask::fh_nof_rec_pi0
TH1D * fh_nof_rec_pi0
Definition: CbmAnaDielectronTask.h:431
CbmAnaDielectronTask::fh_source_pairs_epem
std::vector< TH2D * > fh_source_pairs_epem
Definition: CbmAnaDielectronTask.h:408
CbmLmvmCandidate
Definition: CbmLmvmCandidate.h:11
CbmAnaDielectronTask::fh_nof_mismatches
TH1D * fh_nof_mismatches
Definition: CbmAnaDielectronTask.h:433
CbmAnaDielectronTask::fh_nof_topology_pairs_gamma
TH1D * fh_nof_topology_pairs_gamma
Definition: CbmAnaDielectronTask.h:422
CbmAnaDielectronTask::fh_piprim_mom_mc
TH1D * fh_piprim_mom_mc
Definition: CbmAnaDielectronTask.h:461
CbmAnaDielectronTask::PairMcAndAcceptance
void PairMcAndAcceptance()
Definition: CbmAnaDielectronTask.cxx:1410
CbmAnaDielectronTask::fh_mvd1r
std::vector< TH1D * > fh_mvd1r
Definition: CbmAnaDielectronTask.h:391
CbmLmvmCandidate.h
CbmAnaDielectronTask::IsMismatch
Bool_t IsMismatch(CbmLmvmCandidate *cand)
Definition: CbmAnaDielectronTask.cxx:2350
CbmAnaDielectronTask::fh_pi_mom_rec_sts_rich_trd_tof
TH1D * fh_pi_mom_rec_sts_rich_trd_tof
Definition: CbmAnaDielectronTask.h:457
CbmAnaDielectronTask::fh_piprim_minus_rapidity_mc
TH1D * fh_piprim_minus_rapidity_mc
Definition: CbmAnaDielectronTask.h:469
CbmAnaDielectronTask::fKFVertex
CbmKFVertex fKFVertex
Definition: CbmAnaDielectronTask.h:281
CbmAnaDielectronTask::fh_pi0_minv
std::vector< TH1D * > fh_pi0_minv
Definition: CbmAnaDielectronTask.h:341
CbmAnaDielectronTask::fMvdHitMatches
TClonesArray * fMvdHitMatches
Definition: CbmAnaDielectronTask.h:273
CbmAnaDielectronTask::AssignMcToCandidates
void AssignMcToCandidates()
Definition: CbmAnaDielectronTask.cxx:1720
CbmAnaDielectronTask::fh_signal_pmtXY
TH2D * fh_signal_pmtXY
Definition: CbmAnaDielectronTask.h:323
CbmAnaDielectronTask::MCPairs
void MCPairs()
Definition: CbmAnaDielectronTask.cxx:1224
CbmAnaDielectronTask::fh_pi_mom_rec_sts_rich_trd
TH1D * fh_pi_mom_rec_sts_rich_trd
Definition: CbmAnaDielectronTask.h:456
CbmAnaDielectronTask::fh_mvd1cut
std::vector< TH2D * > fh_mvd1cut
Definition: CbmAnaDielectronTask.h:376
CbmAnaDielectronTask::fh_source_pt
std::vector< std::vector< TH1D * > > fh_source_pt
Definition: CbmAnaDielectronTask.h:447
CbmAnaDielectronTask::fh_bg_truematch_minv
std::vector< TH1D * > fh_bg_truematch_minv
Definition: CbmAnaDielectronTask.h:352
CbmAnaDielectronTask::RichPmtXY
void RichPmtXY()
Definition: CbmAnaDielectronTask.cxx:1294
CbmAnaDielectronTask::FillCandidates
void FillCandidates()
Definition: CbmAnaDielectronTask.cxx:1633
CbmAnaDielectronTask::fh_gamma_pmtXY
TH2D * fh_gamma_pmtXY
Definition: CbmAnaDielectronTask.h:325
CbmAnaDielectronTask::MvdCutMcDistance
void MvdCutMcDistance()
Definition: CbmAnaDielectronTask.cxx:2691
CbmAnaDielectronTask::fRichPoints
TClonesArray * fRichPoints
Definition: CbmAnaDielectronTask.h:264
CbmAnaDielectronTask::operator=
CbmAnaDielectronTask & operator=(const CbmAnaDielectronTask &)
CbmAnaDielectronTask::fUseTof
Bool_t fUseTof
Definition: CbmAnaDielectronTask.h:289
CbmAnaDielectronTask::SignalAndBgReco
void SignalAndBgReco()
Definition: CbmAnaDielectronTask.cxx:1991
CbmAnaDielectronTask::CheckClosestMvdHit
void CheckClosestMvdHit(Int_t mvdStationNum, std::vector< TH2D * > &hist, std::vector< TH1D * > &histQa)
Definition: CbmAnaDielectronTask.cxx:2553
CbmAnaDielectronTask::SetUseRich
void SetUseRich(Bool_t use)
Definition: CbmAnaDielectronTask.h:475
CbmAnaDielectronTask::fh_vertex_el_gamma_xy
std::vector< TH2D * > fh_vertex_el_gamma_xy
Definition: CbmAnaDielectronTask.h:332
CbmAnaDielectronTask::fh_mvd1xy
std::vector< TH2D * > fh_mvd1xy
Definition: CbmAnaDielectronTask.h:390
CbmAnaDielectronTask::fh_acc_mother_pdg
TH1D * fh_acc_mother_pdg
Definition: CbmAnaDielectronTask.h:320
CbmAnaDielectronTask::fTofHits
TClonesArray * fTofHits
Definition: CbmAnaDielectronTask.h:277
CbmGlobalTrack.h
CbmAnaDielectronTask::fMvdPoints
TClonesArray * fMvdPoints
Definition: CbmAnaDielectronTask.h:272
CbmAnaDielectronTask::fTrdTrackMatches
TClonesArray * fTrdTrackMatches
Definition: CbmAnaDielectronTask.h:276
CbmAnaDielectronTask::fTTCandidates
std::vector< CbmLmvmCandidate > fTTCandidates
Definition: CbmAnaDielectronTask.h:295
CbmAnaDielectronTask::fh_source_tracks
TH2D * fh_source_tracks
Definition: CbmAnaDielectronTask.h:420
CbmAnaDielectronTask::fh_source_bg_minv
std::vector< std::vector< TH1D * > > fh_source_bg_minv
Definition: CbmAnaDielectronTask.h:364
CbmAnaDielectronTask::TrackSource
void TrackSource(CbmLmvmCandidate *cand, CbmLmvmAnalysisSteps step, Int_t pdg)
Definition: CbmAnaDielectronTask.cxx:1893
CbmAnaDielectronTask::fMCTracks
TClonesArray * fMCTracks
Definition: CbmAnaDielectronTask.h:261
CbmAnaDielectronTask::fh_piprim_plus_rapidity_mc
TH1D * fh_piprim_plus_rapidity_mc
Definition: CbmAnaDielectronTask.h:468
CbmAnaDielectronTask::fCandidates
std::vector< CbmLmvmCandidate > fCandidates
Definition: CbmAnaDielectronTask.h:291
CbmAnaDielectronTask::fh_pi_mom_rec
TH1D * fh_pi_mom_rec
Definition: CbmAnaDielectronTask.h:454
CbmAnaDielectronTask::CbmAnaDielectronTask
CbmAnaDielectronTask(const CbmAnaDielectronTask &)
CbmAnaDielectronTask::ClassDef
ClassDef(CbmAnaDielectronTask, 1)
CbmAnaDielectronTask::fh_opening_angle
std::vector< std::vector< TH1D * > > fh_opening_angle
Definition: CbmAnaDielectronTask.h:449
CbmAnaDielectronTask::fh_rtcut_pion
std::vector< TH2D * > fh_rtcut_pion
Definition: CbmAnaDielectronTask.h:385
CbmAnaDielectronTask::fMCEventHeader
FairMCEventHeader * fMCEventHeader
Definition: CbmAnaDielectronTask.h:260
CbmAnaDielectronTask::CheckGammaConvAndPi0
void CheckGammaConvAndPi0()
Definition: CbmAnaDielectronTask.cxx:2145
CbmAnaDielectronTask::SetEnergyAndPlutoParticle
void SetEnergyAndPlutoParticle(const string &energy, const string &particle)
Definition: CbmAnaDielectronTask.cxx:2750
CbmAnaDielectronTask::fh_bg_truematch_notel_minv
std::vector< TH1D * > fh_bg_truematch_notel_minv
Definition: CbmAnaDielectronTask.h:356
min
friend F32vec4 min(const F32vec4 &a, const F32vec4 &b)
Definition: L1/vectors/P4_F32vec4.h:33
CbmAnaDielectronTask::IsGhost
Bool_t IsGhost(CbmLmvmCandidate *cand)
Definition: CbmAnaDielectronTask.cxx:2360
CbmAnaDielectronTask::fh_ttcut_truepair
std::vector< TH2D * > fh_ttcut_truepair
Definition: CbmAnaDielectronTask.h:382
CbmAnaDielectronTask::fh_nof_charged_particles_acc
TH1D * fh_nof_charged_particles_acc
Definition: CbmAnaDielectronTask.h:317
CbmAnaDielectronTask::CalculateNofTopologyPairs
void CalculateNofTopologyPairs(TH1D *h_nof_pairs, const std::string &source)
Definition: CbmAnaDielectronTask.cxx:2266
CbmAnaDielectronTask::fh_vertex_el_gamma_xz
std::vector< TH2D * > fh_vertex_el_gamma_xz
Definition: CbmAnaDielectronTask.h:330
CbmAnaDielectronTask::fCuts
CbmLmvmCuts fCuts
Definition: CbmAnaDielectronTask.h:307
CbmAnaDielectronTask::CreateAnalysisStepsH1
void CreateAnalysisStepsH1(std::vector< TH1D * > &hist, const std::string &name, const std::string &axisX, const std::string &axisY, double nBins, double min, double max)
Definition: CbmAnaDielectronTask.cxx:79
CbmAnaDielectronTask::fh_source_pairs
TH2D * fh_source_pairs
Definition: CbmAnaDielectronTask.h:412
CbmAnaDielectronTask::fh_mvd1cut_qa
std::vector< TH1D * > fh_mvd1cut_qa
Definition: CbmAnaDielectronTask.h:401
CbmAnaDielectronTask::FillPairHists
void FillPairHists(CbmLmvmCandidate *candP, CbmLmvmCandidate *candM, CbmLmvmKinematicParams *parMc, CbmLmvmKinematicParams *parRec, CbmLmvmAnalysisSteps step)
Definition: CbmAnaDielectronTask.cxx:1951
CbmAnaDielectronTask::fh_ttcut
std::vector< TH2D * > fh_ttcut
Definition: CbmAnaDielectronTask.h:373
CbmAnaDielectronTask::fh_piprim_mom_rec_sts_rich_trd_tof
TH1D * fh_piprim_mom_rec_sts_rich_trd_tof
Definition: CbmAnaDielectronTask.h:466
CbmAnaDielectronTask::fh_tofm2
std::vector< TH2D * > fh_tofm2
Definition: CbmAnaDielectronTask.h:380
CbmStsTrack.h
Data class for STS tracks.
CbmAnaDielectronTask::fh_nof_rec_pairs_gamma
TH1D * fh_nof_rec_pairs_gamma
Definition: CbmAnaDielectronTask.h:426
CbmAnaDielectronTask::fh_mc_mother_pdg
TH1D * fh_mc_mother_pdg
Definition: CbmAnaDielectronTask.h:319
CbmAnaDielectronTask::fh_piprim_mom_acc
TH1D * fh_piprim_mom_acc
Definition: CbmAnaDielectronTask.h:462
CbmAnaDielectronTask::fh_bg_mismatch_minv
std::vector< TH1D * > fh_bg_mismatch_minv
Definition: CbmAnaDielectronTask.h:358
CbmAnaDielectronTask::PairSource
void PairSource(CbmLmvmCandidate *candP, CbmLmvmCandidate *candM, CbmLmvmAnalysisSteps step, CbmLmvmKinematicParams *parRec)
Definition: CbmAnaDielectronTask.cxx:1819
CbmAnaDielectronTask::fh_mvd2cut_mc_dist_gamma
TH1D * fh_mvd2cut_mc_dist_gamma
Definition: CbmAnaDielectronTask.h:398
CbmAnaDielectronTask::fRTCandidates
std::vector< CbmLmvmCandidate > fRTCandidates
Definition: CbmAnaDielectronTask.h:297
CbmAnaDielectronTask::fh_pi_mom_mc
TH1D * fh_pi_mom_mc
Definition: CbmAnaDielectronTask.h:452
CbmAnaDielectronTask::fh_mvd2cut_qa
std::vector< TH1D * > fh_mvd2cut_qa
Definition: CbmAnaDielectronTask.h:402
CbmStsKFTrackFitter
Definition: CbmStsKFTrackFitter.h:14
CbmAnaDielectronTask::fh_bg_truematch_el_minv
std::vector< TH1D * > fh_bg_truematch_el_minv
Definition: CbmAnaDielectronTask.h:354
CbmAnaDielectronTask::FillNofChargedParticlesPerEvent
void FillNofChargedParticlesPerEvent()
Definition: CbmAnaDielectronTask.cxx:1338
CbmAnaDielectronTask::fh_mvd2cut_mc_dist_pi0
TH1D * fh_mvd2cut_mc_dist_pi0
Definition: CbmAnaDielectronTask.h:399
CbmAnaDielectronTask::IsMcTrackAccepted
Bool_t IsMcTrackAccepted(Int_t mcTrackInd)
Definition: CbmAnaDielectronTask.cxx:1363
CbmAnaDielectronTask::fh_stcut
std::vector< TH2D * > fh_stcut
Definition: CbmAnaDielectronTask.h:374
CbmAnaDielectronTask::fTrdHits
TClonesArray * fTrdHits
Definition: CbmAnaDielectronTask.h:275
CbmAnaDielectronTask::DifferenceSignalAndBg
void DifferenceSignalAndBg()
Definition: CbmAnaDielectronTask.cxx:2415
CbmAnaDielectronTask::fStsTrackMatches
TClonesArray * fStsTrackMatches
Definition: CbmAnaDielectronTask.h:269
CbmAnaDielectronTask::fh_event_number
TH1D * fh_event_number
Definition: CbmAnaDielectronTask.h:415
CbmAnaDielectronTask::SingleParticleAcceptance
void SingleParticleAcceptance()
Definition: CbmAnaDielectronTask.cxx:1373
CbmLmvmHist.h
CbmAnaDielectronTask::fh_eta_minv_pt
std::vector< TH2D * > fh_eta_minv_pt
Definition: CbmAnaDielectronTask.h:347
CbmAnaDielectronTask::fh_source_mom
std::vector< std::vector< TH1D * > > fh_source_mom
Definition: CbmAnaDielectronTask.h:445
CbmAnaDielectronTask::fh_vertex_el_gamma_rz
std::vector< TH2D * > fh_vertex_el_gamma_rz
Definition: CbmAnaDielectronTask.h:333
CbmAnaDielectronTask::fh_mvd1cut_mc_dist_gamma
TH1D * fh_mvd1cut_mc_dist_gamma
Definition: CbmAnaDielectronTask.h:396
CbmAnaDielectronTask::FillRichRingNofHits
void FillRichRingNofHits()
Definition: CbmAnaDielectronTask.cxx:1199
CbmAnaDielectronTask::fh_signal_minv
std::vector< TH1D * > fh_signal_minv
Definition: CbmAnaDielectronTask.h:339
CbmAnaDielectronTask::fGlobalTracks
TClonesArray * fGlobalTracks
Definition: CbmAnaDielectronTask.h:267
CbmVertex
Definition: CbmVertex.h:26
CbmAnaDielectronTask::Finish
virtual void Finish()
Definition: CbmAnaDielectronTask.cxx:2737
CbmAnaDielectronTask::InitHists
void InitHists()
Definition: CbmAnaDielectronTask.cxx:311
CbmAnaDielectronTask::fh_ttcut_pion
std::vector< TH2D * > fh_ttcut_pion
Definition: CbmAnaDielectronTask.h:381
CbmAnaDielectronTask::fh_mom
std::vector< TH1D * > fh_mom
Definition: CbmAnaDielectronTask.h:370
CbmAnaDielectronTask::fRichProj
TClonesArray * fRichProj
Definition: CbmAnaDielectronTask.h:263
CbmAnaDielectronTask::fh_trdann
std::vector< TH1D * > fh_trdann
Definition: CbmAnaDielectronTask.h:379
CbmAnaDielectronTask::fh_pt
std::vector< TH1D * > fh_pt
Definition: CbmAnaDielectronTask.h:369
CbmAnaDielectronTask::CreateSourceTypesH1
void CreateSourceTypesH1(std::vector< TH1D * > &hist, const std::string &name, const std::string &axisX, const std::string &axisY, double nBins, double min, double max)
Definition: CbmAnaDielectronTask.cxx:121
CbmAnaDielectronTask::fh_piprim_mom_rec
TH1D * fh_piprim_mom_rec
Definition: CbmAnaDielectronTask.h:463
CbmAnaDielectronTask::SetUseTrd
void SetUseTrd(Bool_t use)
Definition: CbmAnaDielectronTask.h:476
CbmLitMCTrackCreator.h
Creates CbmLitMCTrack objects.
CbmAnaDielectronTask::fh_nof_mismatches_trd
TH1D * fh_nof_mismatches_trd
Definition: CbmAnaDielectronTask.h:435
CbmAnaDielectronTask::fPrimVertex
CbmVertex * fPrimVertex
Definition: CbmAnaDielectronTask.h:280
CbmAnaDielectronTask::fh_mvd2xy
std::vector< TH2D * > fh_mvd2xy
Definition: CbmAnaDielectronTask.h:392
CbmAnaDielectronTask::fh_nofStsHits
std::vector< TH1D * > fh_nofStsHits
Definition: CbmAnaDielectronTask.h:389
CbmAnaDielectronTask::fh_rtcut
std::vector< TH2D * > fh_rtcut
Definition: CbmAnaDielectronTask.h:375
CbmAnaDielectronTask::fTrdTracks
TClonesArray * fTrdTracks
Definition: CbmAnaDielectronTask.h:274
CbmAnaDielectronTask::fUseTrd
Bool_t fUseTrd
Definition: CbmAnaDielectronTask.h:288
CbmAnaDielectronTask::fh_pi_mom_rec_only_sts
TH1D * fh_pi_mom_rec_only_sts
Definition: CbmAnaDielectronTask.h:455
CbmAnaDielectronTask::fStsHits
TClonesArray * fStsHits
Definition: CbmAnaDielectronTask.h:270
CbmAnaDielectronTask::fh_pi_rapidity_mc
TH1D * fh_pi_rapidity_mc
Definition: CbmAnaDielectronTask.h:458
CbmAnaDielectronTask::fTofHitsMatches
TClonesArray * fTofHitsMatches
Definition: CbmAnaDielectronTask.h:278
CbmAnaDielectronTask::fh_pi0_minv_pt
std::vector< TH2D * > fh_pi0_minv_pt
Definition: CbmAnaDielectronTask.h:348
CbmAnaDielectronTask::fh_nof_mismatches_rich
TH1D * fh_nof_mismatches_rich
Definition: CbmAnaDielectronTask.h:434
CbmAnaDielectronTask::fh_rtcut_truepair
std::vector< TH2D * > fh_rtcut_truepair
Definition: CbmAnaDielectronTask.h:386
CbmAnaDielectronTask::CheckTopologyCut
void CheckTopologyCut(const std::string &cutName, const std::vector< CbmLmvmCandidate > &cutCandidates, const std::vector< TH2D * > &hcut, const std::vector< TH2D * > &hcutPion, const std::vector< TH2D * > &hcutTruepair, Double_t angleCut, Double_t ppCut)
Definition: CbmAnaDielectronTask.cxx:2168
CbmLmvmCuts
Definition: CbmLmvmCuts.h:15
CbmAnaDielectronTask::fWeight
Double_t fWeight
Definition: CbmAnaDielectronTask.h:299
CbmAnaDielectronTask::FillElPiMomHist
void FillElPiMomHist()
Definition: CbmAnaDielectronTask.cxx:1462
CbmAnaDielectronTask::CreateAnalysisStepsH2
void CreateAnalysisStepsH2(std::vector< TH2D * > &hist, const std::string &name, const std::string &axisX, const std::string &axisY, const std::string &axisZ, double nBinsX, double minX, double maxX, double nBinsY, double minY, double maxY)
Definition: CbmAnaDielectronTask.cxx:97
CbmAnaDielectronTask::Init
virtual InitStatus Init()
Definition: CbmAnaDielectronTask.cxx:1021
CbmAnaDielectronTask::fh_eta_minv
std::vector< TH1D * > fh_eta_minv
Definition: CbmAnaDielectronTask.h:342
CbmAnaDielectronTask::SetWeight
void SetWeight(Double_t weight)
Definition: CbmAnaDielectronTask.h:478
CbmAnaDielectronTask::fh_mvd2cut
std::vector< TH2D * > fh_mvd2cut
Definition: CbmAnaDielectronTask.h:377
CbmMCTrack.h
CbmAnaDielectronTask::fh_pi0_pmtXY
TH2D * fh_pi0_pmtXY
Definition: CbmAnaDielectronTask.h:324
CbmAnaDielectronTask::SetUseTof
void SetUseTof(Bool_t use)
Definition: CbmAnaDielectronTask.h:477
CbmAnaDielectronTask::fRandom3
TRandom3 * fRandom3
Definition: CbmAnaDielectronTask.h:303
CbmAnaDielectronTask::CbmAnaDielectronTask
CbmAnaDielectronTask()
Definition: CbmAnaDielectronTask.cxx:163
CbmAnaDielectronTask::fh_mvd2r
std::vector< TH1D * > fh_mvd2r
Definition: CbmAnaDielectronTask.h:393
CbmAnaDielectronTask::fh_nofMvdHits
std::vector< TH1D * > fh_nofMvdHits
Definition: CbmAnaDielectronTask.h:388
CbmAnaDielectronTask::fh_piprim_mom_rec_sts_rich_trd
TH1D * fh_piprim_mom_rec_sts_rich_trd
Definition: CbmAnaDielectronTask.h:465
CbmAnaDielectronTask::fNofHitsInRingMap
std::map< Int_t, Int_t > fNofHitsInRingMap
Definition: CbmAnaDielectronTask.h:312
CbmAnaDielectronTask::SetUseMvd
void SetUseMvd(Bool_t use)
Definition: CbmAnaDielectronTask.h:474
CbmAnaDielectronTask::fKFFitter
CbmStsKFTrackFitter fKFFitter
Definition: CbmAnaDielectronTask.h:282
CbmAnaDielectronTask::fh_nof_topology_pairs_pi0
TH1D * fh_nof_topology_pairs_pi0
Definition: CbmAnaDielectronTask.h:423
CbmAnaDielectronTask::fh_nof_bg_tracks
TH1D * fh_nof_bg_tracks
Definition: CbmAnaDielectronTask.h:418
CbmAnaDielectronTask::AssignMcToTopologyCandidates
void AssignMcToTopologyCandidates(std::vector< CbmLmvmCandidate > &cutCandidates)
Definition: CbmAnaDielectronTask.cxx:1785
CbmAnaDielectronTask::SetPionMisidLevel
void SetPionMisidLevel(Double_t level)
Definition: CbmAnaDielectronTask.h:481
CbmAnaDielectronTask::~CbmAnaDielectronTask
virtual ~CbmAnaDielectronTask()
Definition: CbmAnaDielectronTask.cxx:309
CbmAnaDielectronTask::fh_piprim_mom_rec_only_sts
TH1D * fh_piprim_mom_rec_only_sts
Definition: CbmAnaDielectronTask.h:464
CbmAnaDielectronTask::fh_bg_minv
std::vector< TH1D * > fh_bg_minv
Definition: CbmAnaDielectronTask.h:340
CbmAnaDielectronTask::fh_chi2prim
std::vector< TH1D * > fh_chi2prim
Definition: CbmAnaDielectronTask.h:372
CbmAnaDielectronTask::fh_richann
std::vector< TH1D * > fh_richann
Definition: CbmAnaDielectronTask.h:378
CbmAnaDielectronTask::fh_nof_charged_particles
TH1D * fh_nof_charged_particles
Definition: CbmAnaDielectronTask.h:316
CbmAnaDielectronTask::fh_etaprim_rapidity_mc
TH1D * fh_etaprim_rapidity_mc
Definition: CbmAnaDielectronTask.h:471
CbmAnaDielectronTask::Exec
virtual void Exec(Option_t *option)
Definition: CbmAnaDielectronTask.cxx:1156
CbmTrdTrack.h
CbmAnaDielectronTask::fMvdHits
TClonesArray * fMvdHits
Definition: CbmAnaDielectronTask.h:271
CbmAnaDielectronTask::fh_nof_mismatches_tof
TH1D * fh_nof_mismatches_tof
Definition: CbmAnaDielectronTask.h:436
CbmAnaDielectronTask
Definition: CbmAnaDielectronTask.h:39
CbmAnaDielectronTask::fHistoList
std::vector< TH1 * > fHistoList
Definition: CbmAnaDielectronTask.h:309
CbmAnaDielectronTask::fh_signal_mom
std::vector< TH1D * > fh_signal_mom
Definition: CbmAnaDielectronTask.h:344
CbmAnaDielectronTask::fUseRich
Bool_t fUseRich
Definition: CbmAnaDielectronTask.h:287
CbmAnaDielectronTask::fRichRingMatches
TClonesArray * fRichRingMatches
Definition: CbmAnaDielectronTask.h:265
max
friend F32vec4 max(const F32vec4 &a, const F32vec4 &b)
Definition: L1/vectors/P4_F32vec4.h:36
CbmAnaDielectronTask::fh_pi0prim_rapidity_mc
TH1D * fh_pi0prim_rapidity_mc
Definition: CbmAnaDielectronTask.h:470
CbmAnaDielectronTask::fh_nof_ghosts
TH1D * fh_nof_ghosts
Definition: CbmAnaDielectronTask.h:437
CbmAnaDielectronTask::fh_signal_minv_pt
std::vector< TH2D * > fh_signal_minv_pt
Definition: CbmAnaDielectronTask.h:346
CbmAnaDielectronTask::fStsTracks
TClonesArray * fStsTracks
Definition: CbmAnaDielectronTask.h:268
CbmAnaDielectronTask::fh_stcut_truepair
std::vector< TH2D * > fh_stcut_truepair
Definition: CbmAnaDielectronTask.h:384
CbmAnaDielectronTask::CreateSourceTypesH2
void CreateSourceTypesH2(std::vector< TH2D * > &hist, const std::string &name, const std::string &axisX, const std::string &axisY, const std::string &axisZ, double nBinsX, double minX, double maxX, double nBinsY, double minY, double maxY)
Definition: CbmAnaDielectronTask.cxx:139
CbmKFVertex.h
CbmAnaDielectronTask::fh_gamma_minv
std::vector< TH1D * > fh_gamma_minv
Definition: CbmAnaDielectronTask.h:343
CbmAnaDielectronTask::fh_vertex_el_gamma_yz
std::vector< TH2D * > fh_vertex_el_gamma_yz
Definition: CbmAnaDielectronTask.h:331
CbmAnaDielectronTask::IsElectron
void IsElectron(Int_t globalTrackIndex, Double_t momentum, CbmLmvmCandidate *cand)
Definition: CbmAnaDielectronTask.cxx:2367
CbmLmvmKinematicParams
Definition: CbmLmvmKinematicParams.h:17
CbmAnaDielectronTask::fh_chi2sts
std::vector< TH1D * > fh_chi2sts
Definition: CbmAnaDielectronTask.h:371
CbmStsKFTrackFitter.h
CbmLmvmAnalysisSteps
CbmLmvmAnalysisSteps
Definition: CbmLmvmHist.h:15
CbmAnaDielectronTask::fh_mc_signal_mom_angle
TH2D * fh_mc_signal_mom_angle
Definition: CbmAnaDielectronTask.h:314
CbmAnaDielectronTask::fPionMisidLevel
Double_t fPionMisidLevel
Definition: CbmAnaDielectronTask.h:302
CbmAnaDielectronTask::fh_pi_mom_acc
TH1D * fh_pi_mom_acc
Definition: CbmAnaDielectronTask.h:453
CbmAnaDielectronTask::fh_nof_el_tracks
TH1D * fh_nof_el_tracks
Definition: CbmAnaDielectronTask.h:419
CbmKFVertex
Definition: CbmKFVertex.h:6
CbmLmvmKinematicParams.h
CbmAnaDielectronTask::fh_stcut_pion
std::vector< TH2D * > fh_stcut_pion
Definition: CbmAnaDielectronTask.h:383
CbmAnaDielectronTask::FillTopologyCandidates
void FillTopologyCandidates()
Definition: CbmAnaDielectronTask.cxx:1556
CbmAnaDielectronTask::fRichHits
TClonesArray * fRichHits
Definition: CbmAnaDielectronTask.h:266
CbmAnaDielectronTask::fTofPoints
TClonesArray * fTofPoints
Definition: CbmAnaDielectronTask.h:279
CbmAnaDielectronTask::fh_nof_rec_gamma
TH1D * fh_nof_rec_gamma
Definition: CbmAnaDielectronTask.h:430