]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGHF/hfe/AliHFENonPhotonicElectron.h
Update HFE code
[u/mrichter/AliRoot.git] / PWGHF / hfe / AliHFENonPhotonicElectron.h
CommitLineData
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 25class AliESDtrackCuts;
26class AliHFEpid;
27class AliHFEpidQAmanager;
28class AliMCEvent;
4437a0d2 29class AliKFVertex;
76d0b522 30class AliVEvent;
31class AliVParticle;
4437a0d2 32class AliVTrack;
76d0b522 33class THnSparse;
34class TClonesArray;
35class TList;
36
37class 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