CbmRoot
Loading...
Searching...
No Matches
CbmAnaJpsiTask.h
Go to the documentation of this file.
1/* Copyright (C) 2015-2017 Justus-Liebig-Universitaet Giessen, Giessen
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Semen Lebedev, Adrian Amatus Weber, Elena Lebedeva [committer] */
4
5#ifndef CBMJPSIANATASK
6#define CBMJPSIANATASK
7
9#include "CbmAnaJpsiCuts.h"
10#include "CbmAnaJpsiHist.h"
12#include "CbmGlobalTrack.h"
13#include "CbmHistManager.h"
14#include "CbmKFVertex.h"
15#include "CbmRichRing.h"
16#include "CbmTrdTrack.h"
17#include "CbmVertex.h"
18
19#include "FairTask.h"
20
21#include "TClonesArray.h"
22#include "TH1D.h"
23#include "TH2D.h"
24#include "TH3D.h"
25
26#include <string>
27#include <vector>
28
29using namespace std;
30
31class CbmAnaJpsiTask : public FairTask {
32
33public:
38
42 virtual ~CbmAnaJpsiTask();
43
47 virtual InitStatus Init();
48
52 virtual void Exec(Option_t* option);
53
57 virtual void Finish();
58
59
60private:
61 Int_t fEventNum;
62
63 TClonesArray* fMcTracks;
64 TClonesArray* fStsPoints;
65 TClonesArray* fStsHits;
66 TClonesArray* fStsTracks;
67 TClonesArray* fStsTrackMatches;
68 TClonesArray* fRichPoints;
69 TClonesArray* fRichHits;
70 TClonesArray* fRichRings;
71 TClonesArray* fRichRingMatches;
72 TClonesArray* fTrdPoints;
73 TClonesArray* fTrdHits;
74 TClonesArray* fTrdTracks;
75 TClonesArray* fTrdTrackMatches;
76 TClonesArray* fTofPoints;
77 TClonesArray* fTofHits;
78 TClonesArray* fTofHitsMatches;
79 TClonesArray* fGlobalTracks;
80 TClonesArray* fJpsiCandidates; //output array of Jpsi candidates
81
82
83 // Number of hits in the MC RICH ring
84 std::map<Int_t, Int_t> fNofHitsInRingMap;
85
88
89 std::vector<CbmAnaJpsiCandidate> fCandidates; // array of JPsi candidates
90
91 CbmAnaJpsiCuts fCuts; //electron identification and analysis cuts
92
93 Double_t fWeight; // Multiplicity * Branching Ratio of J/Psi;
94
96
97 Bool_t fUseTrd;
98 Bool_t fUseTof;
99
100 /*
101 * \brief Creates 1D histograms for each analysis step.
102 * \param[in] name Base name of the histograms.
103 * \param[in] axisX X axis title.
104 * \param[in] axisY Y axis title.
105 * \param[in] nBins Number of bins for X axis in the histogram.
106 * \param[in] min Minimum value for X axis.
107 * \param[in] max Maximum value for X axis.
108 */
109 void CreateAnalysisStepsH1(const string& name, const string& axisX, const string& axisY, double nBins, double min,
110 double max);
111
112 /*
113 * \brief Creates 2D histograms for each analysis step.
114 * \param[in] name Base name of the histograms.
115 * \param[in] axisX X axis title.
116 * \param[in] axisY Y axis title.
117 * \param[in] axisZ Z axis title.
118 * \param[in] nBinsX Number of bins for X axis in the histogram.
119 * \param[in] minX Minimum value for X axis.
120 * \param[in] maxX Maximum value for X axis.
121 * \param[in] nBinsY Number of bins for Y axis in the histogram.
122 * \param[in] minY Minimum value for Y axis.
123 * \param[in] maxY Maximum value for Y axis.
124 */
125 void CreateAnalysisStepsH2(const string& name, const string& axisX, const string& axisY, const string& axisZ,
126 double nBinsX, double minX, double maxX, double nBinsY, double minY, double maxY);
127
128
129 /*
130 * \brief Creates 1D histograms for different track source types.
131 * \param[in] name Base name of the histograms.
132 * \param[in] axisX X axis title.
133 * \param[in] axisY Y axis title.
134 * \param[in] nBins Number of bins in the histogram.
135 * \param[in] min Minimum value.
136 * \param[in] max Maximum value.
137 */
138 void CreateSourceTypesH1(const string& name, const string& axisX, const string& axisY, double nBins, double min,
139 double max);
140
141
142 /*
143 * \brief Creates 2D histograms for different track source types.
144 * \param[in] name Base name of the histograms.
145 * \param[in] axisX X axis title.
146 * \param[in] axisY Y axis title.
147 * \param[in] axisZ Z axis title.
148 * \param[in] nBinsX Number of bins for X axis in the histogram.
149 * \param[in] minX Minimum value for X axis.
150 * \param[in] maxX Maximum value for X axis.
151 * \param[in] nBinsY Number of bins for Y axis in the histogram.
152 * \param[in] minY Minimum value for Y axis.
153 * \param[in] maxY Maximum value for Y axis.
154 */
155 void CreateSourceTypesH2(const string& name, const string& axisX, const string& axisY, const string& axisZ,
156 double nBinsX, double minX, double maxX, double nBinsY, double minY, double maxY);
157
158 void CreateAnaStepsPairSourceH1(const string& name, const string& axisX, const string& axisY, double nBins,
159 double min, double max);
160
161 void InitHist();
162
163 void FillRichRingNofHits();
164
165 void MCPairs();
166
167 void RichPmtXY();
168
173 void FillCandidates();
174
179
183 Bool_t IsMcTrackAccepted(Int_t mcTrackInd);
184
186
188
192 void PairMcAndAcceptance();
193
196
197 void TrackSource(CbmAnaJpsiCandidate* cand, CbmAnaJpsiAnalysisSteps step, Int_t pdg);
198
201
202 void SignalAndBgReco();
203
207 void IsElectron(Int_t globalTrackIndex, Double_t momentum, CbmAnaJpsiCandidate* cand);
208
209
211
216
217 /*
218 * \brief Copy candidates to the output array.
219 */
221
222
227
232
233
234 ClassDef(CbmAnaJpsiTask, 1)
235};
236
237#endif
CbmAnaJpsiAnalysisSteps
Histogram manager.
CbmVertex * fPrimVertex
TClonesArray * fGlobalTracks
TClonesArray * fRichHits
void CreateAnalysisStepsH1(const string &name, const string &axisX, const string &axisY, double nBins, double min, double max)
TClonesArray * fStsHits
TClonesArray * fTrdTrackMatches
TClonesArray * fStsPoints
virtual void Exec(Option_t *option)
Inherited from FairTask.
CbmAnaJpsiTask & operator=(const CbmAnaJpsiTask &)
Assignment operator.
std::vector< CbmAnaJpsiCandidate > fCandidates
void AssignMcToCandidates()
Assign MC info to the candidates.
CbmHistManager * fHM
TClonesArray * fTofHits
TClonesArray * fTrdTracks
TClonesArray * fMcTracks
void CreateSourceTypesH2(const string &name, const string &axisX, const string &axisY, const string &axisZ, double nBinsX, double minX, double maxX, double nBinsY, double minY, double maxY)
TClonesArray * fRichRingMatches
void FillPairHists(CbmAnaJpsiCandidate *candP, CbmAnaJpsiCandidate *candM, CbmAnaJpsiKinematicParams *parMc, CbmAnaJpsiKinematicParams *parRec, CbmAnaJpsiAnalysisSteps step)
CbmKFVertex fKFVertex
void CreateAnaStepsPairSourceH1(const string &name, const string &axisX, const string &axisY, double nBins, double min, double max)
void CopyCandidatesToOutputArray()
virtual void Finish()
Inherited from FairTask.
TClonesArray * fRichPoints
void PairMcAndAcceptance()
Fill histograms for MC and Acc pairs.
TClonesArray * fStsTracks
virtual ~CbmAnaJpsiTask()
Standard destructor.
CbmAnaJpsiTask()
Standard constructor.
Bool_t IsMcTrackAccepted(Int_t mcTrackInd)
Return true if MC track is in detector acceptance.
void SingleParticleAcceptance()
TClonesArray * fTrdPoints
void PairSource(CbmAnaJpsiCandidate *candP, CbmAnaJpsiCandidate *candM, CbmAnaJpsiAnalysisSteps step, CbmAnaJpsiKinematicParams *parRec)
void DifferenceSignalAndBg()
Fill histograms for signal and BG electrons.
void CreateSourceTypesH1(const string &name, const string &axisX, const string &axisY, double nBins, double min, double max)
TClonesArray * fTofHitsMatches
TClonesArray * fJpsiCandidates
void IsRecoTrackAccepted(CbmAnaJpsiCandidate *cand)
void FillCandidates()
Fill fCandidates array with JPsiCandidates. Candidate should have STS, RICH, TRD, TOF local segments.
virtual InitStatus Init()
Inherited from FairTask.
CbmAnaJpsiCuts fCuts
std::map< Int_t, Int_t > fNofHitsInRingMap
void TrackSource(CbmAnaJpsiCandidate *cand, CbmAnaJpsiAnalysisSteps step, Int_t pdg)
void IsMismatch(CbmAnaJpsiCandidate *cand)
TClonesArray * fTrdHits
void IsElectron(Int_t globalTrackIndex, Double_t momentum, CbmAnaJpsiCandidate *cand)
Identifies particle as Electron (or not)
TClonesArray * fStsTrackMatches
CbmAnaJpsiTask(const CbmAnaJpsiTask &)
Copy constructor.
TClonesArray * fTofPoints
TClonesArray * fRichRings
void CreateAnalysisStepsH2(const string &name, const string &axisX, const string &axisY, const string &axisZ, double nBinsX, double minX, double maxX, double nBinsY, double minY, double maxY)
Histogram manager.
Hash for CbmL1LinkKey.