]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGHF/hfe/AliHFENonPhotonicElectron.h
Bug fix
[u/mrichter/AliRoot.git] / PWGHF / hfe / AliHFENonPhotonicElectron.h
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 *GetMCSourceHisto() const { return fMCSource; };
76   THnSparseF *GetUSignHisto()    const { return fUSign; };
77   THnSparseF *GetLSignHisto()    const { return fLSign; };
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            *fMCSource;                     //! centrality, pt, Source MC
115   THnSparseF            *fUSign;                        //! delta phi, c, pt, inv, source
116   THnSparseF            *fLSign;                        //! delta phi, c, pt, inv, source
117 //  THnSparseF          *fUSignAngle;                   //! angle, c, source
118 //  THnSparseF          *fLSignAngle;                   //! angle, c, source
119
120
121   AliHFENonPhotonicElectron(const AliHFENonPhotonicElectron&ref); 
122
123   ClassDef(AliHFENonPhotonicElectron, 1); //!example of analysis
124 };
125
126 #endif