]>
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 | ||
57 | void SetMCEvent (AliMCEvent *mcEvent) {fMCEvent = mcEvent; }; | |
58 | void SetAODArrayMCInfo (TClonesArray *aodArrayMCInfo) {fAODArrayMCInfo = aodArrayMCInfo; }; | |
59 | ||
60 | void SetUseFilterAOD(Bool_t useFilterAOD) { fUseFilterAOD = useFilterAOD; }; | |
61 | void SetFilter(UInt_t filter) { fFilter = filter; }; | |
62 | ||
63 | void SetHFEBackgroundCuts(AliESDtrackCuts * const cuts) { fHFEBackgroundCuts = cuts; }; | |
64 | AliHFEpid *GetPIDBackground() const { return fPIDBackground; }; | |
65 | AliHFEpidQAmanager *GetPIDBackgroundQAManager() const { return fPIDBackgroundQA; }; | |
66 | ||
67 | void SetMaxInvMass (Double_t MaxInvMass) { fMaxInvMass = MaxInvMass; }; | |
68 | void SetMaxOpening3D (Double_t MaxOpening3D) { fMaxOpening3D = MaxOpening3D; }; | |
69 | void SetMaxOpeningTheta (Double_t MaxOpeningTheta) { fMaxOpeningTheta = MaxOpeningTheta; }; | |
70 | void SetMaxOpeningPhi (Double_t MaxOpeningPhi) { fMaxOpeningPhi = MaxOpeningPhi; }; | |
71 | void SetAlgorithmMA (Bool_t algorithmMA) { fAlgorithmMA = algorithmMA; }; | |
72 | void SetMassConstraint (Bool_t MassConstraint) { fSetMassConstraint = MassConstraint; }; | |
73 | ||
74 | TList *GetListOutput() const { return fListOutput; }; | |
75 | THnSparseF *GetMCSourceeeHisto() const { return fMCSourceee; }; | |
76 | THnSparseF *GetUSigneeHisto() const { return fUSignee; }; | |
77 | THnSparseF *GetLSigneeHisto() const { return fLSignee; }; | |
78 | THnSparseF *GetUSignAngleHisto() const { return fUSignAngle; }; | |
79 | THnSparseF *GetLSignAngleHisto() const { return fLSignAngle; }; | |
80 | ||
81 | void Init (); | |
82 | void InitRun (const AliVEvent *inputEvent,const AliPIDResponse *pidResponse); | |
83 | Int_t FillPoolAssociatedTracks (AliVEvent *inputEvent,Int_t binct=-1); | |
84 | 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); | |
85 | ||
86 | Int_t FindMother (Int_t tr, Int_t &indexmother); | |
87 | Int_t CheckPdg (Int_t tr); | |
88 | Int_t IsMotherGamma (Int_t tr); | |
89 | Int_t IsMotherPi0 (Int_t tr); | |
90 | Int_t IsMotherC (Int_t tr); | |
91 | Int_t IsMotherB (Int_t tr); | |
92 | Int_t IsMotherEta (Int_t tr); | |
93 | ||
94 | ||
95 | private: | |
96 | AliMCEvent *fMCEvent; //! MC event esd | |
97 | TClonesArray *fAODArrayMCInfo; //! MC info particle AOD | |
98 | AliESDtrackCuts *fHFEBackgroundCuts; // HFE background cuts | |
99 | AliHFEpid *fPIDBackground; // PID background cuts | |
100 | AliHFEpidQAmanager *fPIDBackgroundQA; // QA Manager Background | |
101 | Bool_t fAlgorithmMA; // algorithm MA | |
102 | Bool_t fUseFilterAOD; // Use the preselected AOD track | |
103 | UInt_t fFilter; // filter AOD status | |
104 | Double_t fChi2OverNDFCut; // Limit chi2 | |
105 | Double_t fMaxDCA; // Limit dca | |
106 | Double_t fMaxOpeningTheta; // Limit opening angle in theta | |
107 | Double_t fMaxOpeningPhi; // Limit opening angle in phi | |
108 | Double_t fMaxOpening3D; // Limit opening 3D | |
109 | Double_t fMaxInvMass; // Limit invariant mass | |
110 | Bool_t fSetMassConstraint; // Set mass constraint | |
111 | TArrayI *fArraytrack; //! list of tracks | |
112 | Int_t fCounterPoolBackground; // number of tracks | |
113 | TList *fListOutput; // List of histos | |
114 | THnSparseF *fMCSourceee; //! centrality, pt, Source MC | |
115 | THnSparseF *fUSignee; //! delta phi, c, pt, inv, source | |
116 | THnSparseF *fLSignee; //! delta phi, c, pt, inv, source | |
117 | THnSparseF *fUSignAngle; //! angle, c, source | |
118 | THnSparseF *fLSignAngle; //! angle, c, source | |
119 | ||
120 | ||
121 | AliHFENonPhotonicElectron(const AliHFENonPhotonicElectron&); // not implemented | |
122 | ||
123 | ClassDef(AliHFENonPhotonicElectron, 1); //!example of analysis | |
124 | }; | |
125 | ||
126 | #endif |