]>
Commit | Line | Data |
---|---|---|
76d0b522 | 1 | #ifndef ALIHFENONPHOTONICELECTRON_H |
2 | #define ALIHFENONPHOTONICELECTRON_H | |
3 | ||
4 | /************************************************************************************ | |
5 | * * | |
6 | * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
7 | * See cxx source for full Copyright notice * | |
8 | * * | |
9 | * * | |
10 | * * | |
11 | * Task for the Selection of Non-photonic Electron study * | |
12 | * * | |
13 | * Author: R.Bailhache, C.A.Schmidt * | |
14 | * * | |
15 | ************************************************************************************/ | |
16 | ||
17 | #ifndef ROOT_TNamed | |
18 | #include <TNamed.h> | |
19 | #endif | |
20 | ||
1452614c | 21 | #ifndef ROOT_TArrayD |
22 | #include <TArrayD.h> | |
23 | #endif | |
24 | ||
76d0b522 | 25 | class AliESDtrackCuts; |
26 | class AliHFEpid; | |
27 | class AliHFEpidQAmanager; | |
28 | class AliMCEvent; | |
4437a0d2 | 29 | class AliKFVertex; |
76d0b522 | 30 | class AliVEvent; |
31 | class AliVParticle; | |
4437a0d2 | 32 | class AliVTrack; |
76d0b522 | 33 | class THnSparse; |
34 | class TClonesArray; | |
35 | class TList; | |
36 | ||
37 | class AliHFENonPhotonicElectron : public TNamed { | |
38 | public: | |
39 | ||
40 | typedef enum{ | |
41 | kElectronfromconversion = 0, | |
42 | kElectronfromconversionboth = 1, | |
43 | kElectronfrompi0 = 2, | |
44 | kElectronfrompi0both = 3, | |
45 | kElectronfrometa = 4, | |
46 | kElectronfrometaboth = 5, | |
47 | kElectronfromC = 6, | |
48 | kElectronfromB = 7, | |
49 | kElectronfromother = 8, | |
50 | kNoElectron = 9 | |
51 | } Source_t; | |
52 | ||
53 | typedef enum{ | |
54 | kS = 0, | |
55 | kOp = 1 | |
56 | } Sign_t; | |
57 | ||
58 | AliHFENonPhotonicElectron(); | |
59 | AliHFENonPhotonicElectron(const char *name, const Char_t *title); | |
60 | AliHFENonPhotonicElectron &operator=(const AliHFENonPhotonicElectron &ref); | |
61 | virtual ~AliHFENonPhotonicElectron(); | |
62 | ||
8a9b2231 | 63 | void SetAOD (Bool_t isAOD) { fIsAOD = isAOD; }; |
ff8249bd | 64 | void SetMCEvent (AliMCEvent *mcEvent); |
65 | void SetAODArrayMCInfo (TClonesArray *aodArrayMCInfo); | |
8a9b2231 | 66 | void SetHFEBackgroundCuts (AliHFEcuts * const cuts) { fHFEBackgroundCuts = cuts; }; |
ff8249bd | 67 | void SetWithWeights(Int_t levelBack); |
76d0b522 | 68 | |
8a9b2231 | 69 | AliHFEpid *GetPIDBackground() const { return fPIDBackground; }; |
70 | AliHFEpidQAmanager *GetPIDBackgroundQAManager() const { return fPIDBackgroundQA; }; | |
ff8249bd | 71 | Int_t GetLevelBack() const { return fLevelBack; }; |
76d0b522 | 72 | |
73 | void SetMaxInvMass (Double_t MaxInvMass) { fMaxInvMass = MaxInvMass; }; | |
74 | void SetMaxOpening3D (Double_t MaxOpening3D) { fMaxOpening3D = MaxOpening3D; }; | |
959ea9d8 | 75 | // void SetMaxOpeningTheta (Double_t MaxOpeningTheta) { fMaxOpeningTheta = MaxOpeningTheta; }; |
76 | // void SetMaxOpeningPhi (Double_t MaxOpeningPhi) { fMaxOpeningPhi = MaxOpeningPhi; }; | |
76d0b522 | 77 | void SetAlgorithmMA (Bool_t algorithmMA) { fAlgorithmMA = algorithmMA; }; |
78 | void SetMassConstraint (Bool_t MassConstraint) { fSetMassConstraint = MassConstraint; }; | |
7bdde22f | 79 | void SetITSMeanShift (Double_t meanshift) { fITSmeanShift = meanshift; } |
80 | void SetITSnSigmaHigh (Double_t nSigmaHigh) { fITSnSigmaHigh = nSigmaHigh; } | |
81 | void SetITSnSigmaLow (Double_t nSigmaLow) { fITSnSigmaLow = nSigmaLow; } | |
82 | void SetminPt (Double_t minpt) { fminPt = minpt; } | |
76d0b522 | 83 | |
4437a0d2 | 84 | void SelectCategory1Tracks(Bool_t doSelect = kTRUE) { fSelectCategory1tracks = doSelect; } |
85 | void SelectCategory2Tracks(Bool_t doSelect = kTRUE) { fSelectCategory2tracks = doSelect; } | |
86 | ||
8a9b2231 | 87 | TList *GetListOutput() const { return fListOutput; }; |
88 | THnSparseF *GetAssElectronHisto() const { return fAssElectron; }; | |
89 | THnSparseF *GetIncElectronHisto() const { return fIncElectron; }; | |
90 | THnSparseF *GetUSignHisto() const { return fUSign; }; | |
91 | THnSparseF *GetLSignHisto() const { return fLSign; }; | |
959ea9d8 | 92 | // THnSparseF *GetUSignAngleHisto() const { return fUSignAngle; }; |
93 | // THnSparseF *GetLSignAngleHisto() const { return fLSignAngle; }; | |
76d0b522 | 94 | |
95 | void Init (); | |
8a9b2231 | 96 | void InitRun (const AliVEvent *inputEvent, const AliPIDResponse *pidResponse); |
97 | Int_t FillPoolAssociatedTracks (AliVEvent *inputEvent, Int_t binct=-1); | |
98 | Int_t CountPoolAssociated (AliVEvent *inputEvent, Int_t binct=-1); | |
ff8249bd | 99 | Int_t LookAtNonHFE (Int_t iTrack1, AliVTrack *track1, AliVEvent *vEvent, Double_t weight=1., Int_t binct=-1, Double_t deltaphi=-1, Int_t source=-1, Int_t indexmother=-1,Int_t mcQAsource=-1); |
76d0b522 | 100 | |
39427568 | 101 | Int_t FindMother (Int_t tr, Int_t &indexmother) const; |
76d0b522 | 102 | |
1452614c | 103 | void SetPtBinning(const TArrayD &binning) { fPtBinning = binning; } |
104 | void SetPtBinning(Int_t nbins, const Double_t *const binning) { fPtBinning.Set(nbins+1, binning); } | |
105 | void SetEtaBinning(const TArrayD &binning) { fEtaBinning = binning; } | |
106 | void SetEtaBinning(Int_t nbins, const Double_t *const binning) { fEtaBinning.Set(nbins+1, binning); } | |
107 | ||
76d0b522 | 108 | |
109 | private: | |
39427568 | 110 | Int_t GetMotherPDG(Int_t tr, Int_t &motherIndex) const; |
111 | Int_t CheckPdg (Int_t tr) const; | |
ff8249bd | 112 | Double_t Radius (Int_t tr) const; |
39427568 | 113 | Int_t IsMotherGamma (Int_t tr) const; |
114 | Int_t IsMotherPi0 (Int_t tr) const; | |
115 | Int_t IsMotherC (Int_t tr) const; | |
116 | Int_t IsMotherB (Int_t tr) const; | |
117 | Int_t IsMotherEta (Int_t tr) const; | |
4437a0d2 | 118 | Bool_t MakePairDCA(const AliVTrack *inclusive, const AliVTrack *associated, AliVEvent *vEvent, Bool_t isAOD, Double_t &invMass, Double_t &angle) const; |
119 | Bool_t MakePairKF(const AliVTrack *inclusive, const AliVTrack *associated, AliKFVertex &primV, Double_t &invMass, Double_t &angle) const; | |
120 | Bool_t FilterCategory1Track(const AliVTrack * const track, Bool_t isAOD, Int_t binct); | |
121 | Bool_t FilterCategory2Track(const AliVTrack * const track, Bool_t isAOD); | |
122 | ||
1452614c | 123 | Bool_t fIsAOD; // Is AOD |
124 | AliMCEvent *fMCEvent; //! MC event ESD | |
125 | TClonesArray *fAODArrayMCInfo; //! MC info particle AOD | |
ff8249bd | 126 | Int_t fLevelBack; // Level Background |
1452614c | 127 | AliHFEcuts *fHFEBackgroundCuts; // HFE background cuts |
ff8249bd | 128 | AliHFEpid *fPIDBackground; // PID background cuts |
1452614c | 129 | AliHFEpidQAmanager *fPIDBackgroundQA; // QA Manager Background |
130 | const AliPIDResponse *fkPIDRespons; // PID response | |
131 | TArrayD fPtBinning; // pt binning | |
132 | TArrayD fEtaBinning; // eta binning | |
133 | Bool_t fAlgorithmMA; // algorithm MA | |
134 | Double_t fChi2OverNDFCut; // Limit chi2 | |
135 | Double_t fMaxDCA; // Limit dca | |
136 | // Double_t fMaxOpeningTheta; // Limit opening angle in theta | |
137 | // Double_t fMaxOpeningPhi; // Limit opening angle in phi | |
138 | Double_t fMaxOpening3D; // Limit opening 3D | |
139 | Double_t fMaxInvMass; // Limit invariant mass | |
140 | Bool_t fSetMassConstraint; // Set mass constraint | |
141 | Bool_t fSelectCategory1tracks; // Category 1 tracks: Standard track cuts | |
142 | Bool_t fSelectCategory2tracks; // Category 2 tracks: tracks below 300 MeV/c | |
143 | Double_t fITSmeanShift; // Shift of the mean in the ITS | |
7bdde22f | 144 | Double_t fITSnSigmaHigh; // ITS n Sigma electron cut high (>0) |
145 | Double_t fITSnSigmaLow; // ITS n Sigma electron cut low (<0) | |
146 | Double_t fminPt; // min pT cut for the associated leg | |
1452614c | 147 | TArrayI *fArraytrack; //! list of associated tracks |
148 | Int_t fCounterPoolBackground; // number of associated electrons | |
149 | Int_t fnumberfound; // number of inclusive electrons | |
150 | TList *fListOutput; // List of histos | |
151 | THnSparseF *fAssElectron; //! centrality, pt, Source MC, P, TPCsignal | |
152 | THnSparseF *fIncElectron; //! centrality, pt, Source MC, P, TPCsignal | |
153 | THnSparseF *fUSign; //! delta phi, c, pt, inv, source | |
154 | THnSparseF *fLSign; //! delta phi, c, pt, inv, source | |
155 | THnSparseF *fUSmatches; //! number of matched tracks with oposite sign per inclusive track after inv mass cut | |
156 | THnSparseF *fLSmatches; //! number of matched tracks with same sign per inclusive track after inv mass cut | |
ff8249bd | 157 | TH2F *fHnsigmaITS; //! Control histogram for ITS pid of category 2 tracks |
158 | TH2F *fWeightsSource; //! Control histo for sources for weights | |
159 | ||
160 | THnSparseF *fIncElectronRadius; //! For fakes | |
161 | THnSparseF *fRecElectronRadius; //! For fakes | |
1452614c | 162 | // THnSparseF *fUSignAngle; //! angle, c, source |
163 | // THnSparseF *fLSignAngle; //! angle, c, source | |
76d0b522 | 164 | |
165 | ||
8a9b2231 | 166 | AliHFENonPhotonicElectron(const AliHFENonPhotonicElectron &ref); |
76d0b522 | 167 | |
ff8249bd | 168 | ClassDef(AliHFENonPhotonicElectron, 4); //!example of analysis |
76d0b522 | 169 | }; |
170 | ||
171 | #endif |