]>
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 | ||
21 | class AliESDtrackCuts; | |
22 | class AliHFEpid; | |
23 | class AliHFEpidQAmanager; | |
24 | class AliMCEvent; | |
25 | class AliVEvent; | |
26 | class AliVParticle; | |
27 | class THnSparse; | |
28 | class TClonesArray; | |
29 | class TList; | |
30 | ||
31 | class AliHFENonPhotonicElectron : public TNamed { | |
32 | public: | |
33 | ||
34 | typedef enum{ | |
35 | kElectronfromconversion = 0, | |
36 | kElectronfromconversionboth = 1, | |
37 | kElectronfrompi0 = 2, | |
38 | kElectronfrompi0both = 3, | |
39 | kElectronfrometa = 4, | |
40 | kElectronfrometaboth = 5, | |
41 | kElectronfromC = 6, | |
42 | kElectronfromB = 7, | |
43 | kElectronfromother = 8, | |
44 | kNoElectron = 9 | |
45 | } Source_t; | |
46 | ||
47 | typedef enum{ | |
48 | kS = 0, | |
49 | kOp = 1 | |
50 | } Sign_t; | |
51 | ||
52 | AliHFENonPhotonicElectron(); | |
53 | AliHFENonPhotonicElectron(const char *name, const Char_t *title); | |
54 | AliHFENonPhotonicElectron &operator=(const AliHFENonPhotonicElectron &ref); | |
55 | virtual ~AliHFENonPhotonicElectron(); | |
56 | ||
8a9b2231 | 57 | void SetAOD (Bool_t isAOD) { fIsAOD = isAOD; }; |
58 | void SetMCEvent (AliMCEvent *mcEvent) { fMCEvent = mcEvent; }; | |
59 | void SetAODArrayMCInfo (TClonesArray *aodArrayMCInfo) { fAODArrayMCInfo = aodArrayMCInfo; }; | |
60 | void SetUseFilterAOD (Bool_t useFilterAOD) { fUseFilterAOD = useFilterAOD; }; | |
61 | void SetFilter (UInt_t filter) { fFilter = filter; }; | |
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; }; | |
73 | ||
8a9b2231 | 74 | TList *GetListOutput() const { return fListOutput; }; |
75 | THnSparseF *GetAssElectronHisto() const { return fAssElectron; }; | |
76 | THnSparseF *GetIncElectronHisto() const { return fIncElectron; }; | |
77 | THnSparseF *GetUSignHisto() const { return fUSign; }; | |
78 | THnSparseF *GetLSignHisto() const { return fLSign; }; | |
959ea9d8 | 79 | // THnSparseF *GetUSignAngleHisto() const { return fUSignAngle; }; |
80 | // THnSparseF *GetLSignAngleHisto() const { return fLSignAngle; }; | |
76d0b522 | 81 | |
82 | void Init (); | |
8a9b2231 | 83 | void InitRun (const AliVEvent *inputEvent, const AliPIDResponse *pidResponse); |
84 | Int_t FillPoolAssociatedTracks (AliVEvent *inputEvent, Int_t binct=-1); | |
85 | Int_t CountPoolAssociated (AliVEvent *inputEvent, Int_t binct=-1); | |
86 | 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 | 87 | |
88 | Int_t FindMother (Int_t tr, Int_t &indexmother); | |
89 | Int_t CheckPdg (Int_t tr); | |
90 | Int_t IsMotherGamma (Int_t tr); | |
91 | Int_t IsMotherPi0 (Int_t tr); | |
92 | Int_t IsMotherC (Int_t tr); | |
93 | Int_t IsMotherB (Int_t tr); | |
94 | Int_t IsMotherEta (Int_t tr); | |
95 | ||
96 | ||
97 | private: | |
8a9b2231 | 98 | Bool_t fIsAOD; // Is AOD |
959ea9d8 | 99 | AliMCEvent *fMCEvent; //! MC event ESD |
76d0b522 | 100 | TClonesArray *fAODArrayMCInfo; //! MC info particle AOD |
8a9b2231 | 101 | AliHFEcuts *fHFEBackgroundCuts; // HFE background cuts |
76d0b522 | 102 | AliHFEpid *fPIDBackground; // PID background cuts |
103 | AliHFEpidQAmanager *fPIDBackgroundQA; // QA Manager Background | |
8a9b2231 | 104 | const AliPIDResponse *fkPIDRespons; // PID response |
76d0b522 | 105 | Bool_t fAlgorithmMA; // algorithm MA |
106 | Bool_t fUseFilterAOD; // Use the preselected AOD track | |
107 | UInt_t fFilter; // filter AOD status | |
108 | Double_t fChi2OverNDFCut; // Limit chi2 | |
109 | Double_t fMaxDCA; // Limit dca | |
959ea9d8 | 110 | // Double_t fMaxOpeningTheta; // Limit opening angle in theta |
111 | // Double_t fMaxOpeningPhi; // Limit opening angle in phi | |
76d0b522 | 112 | Double_t fMaxOpening3D; // Limit opening 3D |
113 | Double_t fMaxInvMass; // Limit invariant mass | |
114 | Bool_t fSetMassConstraint; // Set mass constraint | |
8a9b2231 | 115 | TArrayI *fArraytrack; //! list of associated tracks |
116 | Int_t fCounterPoolBackground; // number of associated electrons | |
117 | Int_t fnumberfound; // number of inclusive electrons | |
76d0b522 | 118 | TList *fListOutput; // List of histos |
8a9b2231 | 119 | THnSparseF *fAssElectron; //! centrality, pt, Source MC, P, TPCsignal |
120 | THnSparseF *fIncElectron; //! centrality, pt, Source MC, P, TPCsignal | |
959ea9d8 | 121 | THnSparseF *fUSign; //! delta phi, c, pt, inv, source |
122 | THnSparseF *fLSign; //! delta phi, c, pt, inv, source | |
c3e32eae | 123 | THnSparseF *fUSmatches; //! number of matched tracks with oposite sign per inclusive track after inv mass cut |
124 | THnSparseF *fLSmatches; //! number of matched tracks with same sign per inclusive track after inv mass cut | |
959ea9d8 | 125 | // THnSparseF *fUSignAngle; //! angle, c, source |
126 | // THnSparseF *fLSignAngle; //! angle, c, source | |
76d0b522 | 127 | |
128 | ||
8a9b2231 | 129 | AliHFENonPhotonicElectron(const AliHFENonPhotonicElectron &ref); |
76d0b522 | 130 | |
131 | ClassDef(AliHFENonPhotonicElectron, 1); //!example of analysis | |
132 | }; | |
133 | ||
134 | #endif |