]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGHF/hfe/AliHFENonPhotonicElectron.h
#102990: Patch for compilation on Mavericks
[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
21class AliESDtrackCuts;
22class AliHFEpid;
23class AliHFEpidQAmanager;
24class AliMCEvent;
4437a0d2 25class AliKFVertex;
76d0b522 26class AliVEvent;
27class AliVParticle;
4437a0d2 28class AliVTrack;
76d0b522 29class THnSparse;
30class TClonesArray;
31class TList;
32
33class AliHFENonPhotonicElectron : public TNamed {
34 public:
35
36 typedef enum{
37 kElectronfromconversion = 0,
38 kElectronfromconversionboth = 1,
39 kElectronfrompi0 = 2,
40 kElectronfrompi0both = 3,
41 kElectronfrometa = 4,
42 kElectronfrometaboth = 5,
43 kElectronfromC = 6,
44 kElectronfromB = 7,
45 kElectronfromother = 8,
46 kNoElectron = 9
47 } Source_t;
48
49 typedef enum{
50 kS = 0,
51 kOp = 1
52 } Sign_t;
53
54 AliHFENonPhotonicElectron();
55 AliHFENonPhotonicElectron(const char *name, const Char_t *title);
56 AliHFENonPhotonicElectron &operator=(const AliHFENonPhotonicElectron &ref);
57 virtual ~AliHFENonPhotonicElectron();
58
8a9b2231 59 void SetAOD (Bool_t isAOD) { fIsAOD = isAOD; };
60 void SetMCEvent (AliMCEvent *mcEvent) { fMCEvent = mcEvent; };
61 void SetAODArrayMCInfo (TClonesArray *aodArrayMCInfo) { fAODArrayMCInfo = aodArrayMCInfo; };
8a9b2231 62 void SetHFEBackgroundCuts (AliHFEcuts * const cuts) { fHFEBackgroundCuts = cuts; };
76d0b522 63
8a9b2231 64 AliHFEpid *GetPIDBackground() const { return fPIDBackground; };
65 AliHFEpidQAmanager *GetPIDBackgroundQAManager() const { return fPIDBackgroundQA; };
76d0b522 66
67 void SetMaxInvMass (Double_t MaxInvMass) { fMaxInvMass = MaxInvMass; };
68 void SetMaxOpening3D (Double_t MaxOpening3D) { fMaxOpening3D = MaxOpening3D; };
959ea9d8 69// void SetMaxOpeningTheta (Double_t MaxOpeningTheta) { fMaxOpeningTheta = MaxOpeningTheta; };
70// void SetMaxOpeningPhi (Double_t MaxOpeningPhi) { fMaxOpeningPhi = MaxOpeningPhi; };
76d0b522 71 void SetAlgorithmMA (Bool_t algorithmMA) { fAlgorithmMA = algorithmMA; };
72 void SetMassConstraint (Bool_t MassConstraint) { fSetMassConstraint = MassConstraint; };
bbeea05b 73 void SetITSMeanShift(Double_t meanshift) { fITSmeanShift = meanshift; }
76d0b522 74
4437a0d2 75 void SelectCategory1Tracks(Bool_t doSelect = kTRUE) { fSelectCategory1tracks = doSelect; }
76 void SelectCategory2Tracks(Bool_t doSelect = kTRUE) { fSelectCategory2tracks = doSelect; }
77
8a9b2231 78 TList *GetListOutput() const { return fListOutput; };
79 THnSparseF *GetAssElectronHisto() const { return fAssElectron; };
80 THnSparseF *GetIncElectronHisto() const { return fIncElectron; };
81 THnSparseF *GetUSignHisto() const { return fUSign; };
82 THnSparseF *GetLSignHisto() const { return fLSign; };
959ea9d8 83// THnSparseF *GetUSignAngleHisto() const { return fUSignAngle; };
84// THnSparseF *GetLSignAngleHisto() const { return fLSignAngle; };
76d0b522 85
86 void Init ();
8a9b2231 87 void InitRun (const AliVEvent *inputEvent, const AliPIDResponse *pidResponse);
88 Int_t FillPoolAssociatedTracks (AliVEvent *inputEvent, Int_t binct=-1);
89 Int_t CountPoolAssociated (AliVEvent *inputEvent, Int_t binct=-1);
90 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);
76d0b522 91
39427568 92 Int_t FindMother (Int_t tr, Int_t &indexmother) const;
76d0b522 93
94
95 private:
39427568 96 Int_t GetMotherPDG(Int_t tr, Int_t &motherIndex) const;
97 Int_t CheckPdg (Int_t tr) const;
98 Int_t IsMotherGamma (Int_t tr) const;
99 Int_t IsMotherPi0 (Int_t tr) const;
100 Int_t IsMotherC (Int_t tr) const;
101 Int_t IsMotherB (Int_t tr) const;
102 Int_t IsMotherEta (Int_t tr) const;
4437a0d2 103 Bool_t MakePairDCA(const AliVTrack *inclusive, const AliVTrack *associated, AliVEvent *vEvent, Bool_t isAOD, Double_t &invMass, Double_t &angle) const;
104 Bool_t MakePairKF(const AliVTrack *inclusive, const AliVTrack *associated, AliKFVertex &primV, Double_t &invMass, Double_t &angle) const;
105 Bool_t FilterCategory1Track(const AliVTrack * const track, Bool_t isAOD, Int_t binct);
106 Bool_t FilterCategory2Track(const AliVTrack * const track, Bool_t isAOD);
107
8a9b2231 108 Bool_t fIsAOD; // Is AOD
959ea9d8 109 AliMCEvent *fMCEvent; //! MC event ESD
76d0b522 110 TClonesArray *fAODArrayMCInfo; //! MC info particle AOD
8a9b2231 111 AliHFEcuts *fHFEBackgroundCuts; // HFE background cuts
76d0b522 112 AliHFEpid *fPIDBackground; // PID background cuts
113 AliHFEpidQAmanager *fPIDBackgroundQA; // QA Manager Background
8a9b2231 114 const AliPIDResponse *fkPIDRespons; // PID response
76d0b522 115 Bool_t fAlgorithmMA; // algorithm MA
76d0b522 116 Double_t fChi2OverNDFCut; // Limit chi2
117 Double_t fMaxDCA; // Limit dca
959ea9d8 118// Double_t fMaxOpeningTheta; // Limit opening angle in theta
119// Double_t fMaxOpeningPhi; // Limit opening angle in phi
76d0b522 120 Double_t fMaxOpening3D; // Limit opening 3D
121 Double_t fMaxInvMass; // Limit invariant mass
122 Bool_t fSetMassConstraint; // Set mass constraint
4437a0d2 123 Bool_t fSelectCategory1tracks; // Category 1 tracks: Standard track cuts
124 Bool_t fSelectCategory2tracks; // Category 2 tracks: tracks below 300 MeV/c
bbeea05b 125 Double_t fITSmeanShift; // Shift of the mean in the ITS
8a9b2231 126 TArrayI *fArraytrack; //! list of associated tracks
127 Int_t fCounterPoolBackground; // number of associated electrons
128 Int_t fnumberfound; // number of inclusive electrons
76d0b522 129 TList *fListOutput; // List of histos
8a9b2231 130 THnSparseF *fAssElectron; //! centrality, pt, Source MC, P, TPCsignal
131 THnSparseF *fIncElectron; //! centrality, pt, Source MC, P, TPCsignal
959ea9d8 132 THnSparseF *fUSign; //! delta phi, c, pt, inv, source
133 THnSparseF *fLSign; //! delta phi, c, pt, inv, source
c3e32eae 134 THnSparseF *fUSmatches; //! number of matched tracks with oposite sign per inclusive track after inv mass cut
135 THnSparseF *fLSmatches; //! number of matched tracks with same sign per inclusive track after inv mass cut
4437a0d2 136 TH2F* fHnsigmaITS; //! Control histogram for ITS pid of category 2 tracks
959ea9d8 137// THnSparseF *fUSignAngle; //! angle, c, source
138// THnSparseF *fLSignAngle; //! angle, c, source
76d0b522 139
140
8a9b2231 141 AliHFENonPhotonicElectron(const AliHFENonPhotonicElectron &ref);
76d0b522 142
bbeea05b 143 ClassDef(AliHFENonPhotonicElectron, 2); //!example of analysis
76d0b522 144};
145
146#endif