]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGHF/correlationHF/AliDxHFEParticleSelectionEl.h
Update hfe package
[u/mrichter/AliRoot.git] / PWGHF / correlationHF / AliDxHFEParticleSelectionEl.h
1 //-*- Mode: C++ -*-
2 // $Id$
3
4 //* This file is property of and copyright by the ALICE Project        * 
5 //* ALICE Experiment at CERN, All rights reserved.                     *
6 //* See cxx source for full Copyright notice                           *
7
8 /// @file   AliDxHFEParticleSelectionEl.h
9 /// @author Sedat Altinpinar, Hege Erdal, Matthias Richter
10 /// @date   2012-03-19
11 /// @brief  Electron selection for D-HFE correlations
12 ///
13
14 #ifndef ALIDXHFEPARTICLESELECTIONEL_H
15 #define ALIDXHFEPARTICLESELECTIONEL_H
16
17 #include "AliDxHFEParticleSelection.h"
18 class AliPID;
19 class AliPIDResponse;
20 class AliHFEcuts;
21 class AliHFEvarManager;
22 class AliHFEpid;
23 class AliHFEpidBase;
24 class AliHFEtools;
25 class AliVEvent;
26 class AliCFManager;
27 class TH1;
28
29 /**
30  * @class AliDxHFEParticleSelectionEl
31  * Electron selection for D-HFE correlations, implements the specific
32  * selection criteria.
33  */
34 class AliDxHFEParticleSelectionEl : public AliDxHFEParticleSelection {
35   public:
36   /// constructor
37   AliDxHFEParticleSelectionEl(const char* opt="");
38   /// destructor
39   virtual ~AliDxHFEParticleSelectionEl();
40
41   enum {
42     kCutHFE = 0,
43     kCutPID = 1,
44     kNCuts
45   };
46
47   enum {
48     kRecKineITSTPC=0,
49     kRecPrim,
50     kHFEcutsITS,
51     kHFEcutsTOF,
52     kHFEcutsTPC,
53     kPID,
54     kSelected,
55     kNCutLabels
56   };
57
58   ///overloaded from AliDxHFEParticleSelection: Init
59   virtual int Init();
60
61   /// overloaded from AliDxHFEParticleSelection: init the control objects
62   virtual int InitControlObjects();
63   virtual THnSparse* DefineTHnSparse() const;
64
65   /// overloaded from AliDxHFEParticleSelection: check particle
66   virtual int IsSelected(AliVParticle* p, const AliVEvent*);
67
68   virtual int HistogramParticleProperties(AliVParticle* p, int selected);
69
70   // TODO: function can be renamed to better describe what it's doing
71   virtual int DefineParticleProperties(AliVParticle* p, Double_t* date, int dimension) const;
72
73   /// set cuts object: a type cast check is implemented in the method
74   virtual void SetCuts(TObject* /*cuts*/, int /*level*/=0);
75
76  protected:
77
78  private:
79   /// copy contructor prohibited
80   AliDxHFEParticleSelectionEl(const AliDxHFEParticleSelectionEl&);
81   /// assignment operator prohibited
82   AliDxHFEParticleSelectionEl& operator=(const AliDxHFEParticleSelectionEl&);
83
84   /// check cut of specified step, e.g.
85   bool ProcessCutStep(Int_t cutStep, AliVParticle *track);
86
87   AliHFEpid*    fPID;                //! the PID object
88   THnSparse*    fElectronProperties; // the particle properties of selected particles
89   TH1*          fWhichCut;           // effective cut for a rejected particle
90   AliHFEcuts*   fCuts;               //! Cuts for HF electrons
91   AliCFManager* fCFM;                //! Correction Framework Manager
92
93   static const char* fgkTrackControlBinNames[]; //! bin labels for track control histogram
94   static const char* fgkCutBinNames[]; //! bin labels for cuts histogram
95
96   ClassDef(AliDxHFEParticleSelectionEl, 2);
97 };
98
99 #endif