]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGHF/correlationHF/AliDxHFEParticleSelectionD0.h
Update in D-electon correlation code (Hege, Matthias)
[u/mrichter/AliRoot.git] / PWGHF / correlationHF / AliDxHFEParticleSelectionD0.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   AliDxHFEParticleSelectionD0.h
9 /// @author Sedat Altinpinar, Hege Erdal, Matthias Richter
10 /// @date   2012-03-19
11 /// @brief  D0 selection for D-HFE correlations
12 ///
13
14 #ifndef ALIDXHFEPARTICLESELECTIOND0_H
15 #define ALIDXHFEPARTICLESELECTIOND0_H
16
17 #include "AliDxHFEParticleSelection.h"
18
19 class AliVEvent;
20 class AliRDHFCuts;
21
22 /**
23  * @class AliDxHFEParticleSelectionD0
24  * D0 selection for D-HFE correlations, implements the specific
25  * selection criteria.
26  */
27 class AliDxHFEParticleSelectionD0 : public AliDxHFEParticleSelection {
28   public:
29   /// constructor
30   AliDxHFEParticleSelectionD0(const char* opt="");
31   /// destructor
32   virtual ~AliDxHFEParticleSelectionD0();
33
34   /// overloaded from AliDxHFEParticleSelection: init the control objects
35   virtual int InitControlObjects();
36
37   //Function for daughter control objects
38   //TODO: move to AliDxHFEParticleSelection to be used for several particles?
39   virtual int InitControlObjectsDaughters(TString name, int daughter);
40
41   //Overloaded from AliDxHFEParticleSelection
42   virtual TObjArray* Select(TObjArray* particles, const AliVEvent* pEvent);
43   using AliDxHFEParticleSelection::Select;
44
45   /// overloaded from AliDxHFEParticleSelection: check particle
46   virtual int IsSelected(AliVParticle* p, const AliVEvent *pEvent=NULL);
47   /// overloaded from AliDxHFEParticleSelection: set cuts
48   virtual void SetCuts(TObject* /*cuts*/, int level=0);
49
50   //AliRDHFCutsD0toKpi GetCuts()const {return fCuts;}
51   Int_t  GetFillOnlyD0D0bar() const {return fFillOnlyD0D0bar;}
52
53  protected:
54   /// overloaded from AliDxHFEParticleSelection: histogram particle properties
55   virtual int HistogramParticleProperties(AliVParticle* p, int selected=1);
56
57  private:
58   /// copy contructor prohibited
59   AliDxHFEParticleSelectionD0(const AliDxHFEParticleSelectionD0&);
60   /// assignment operator prohibited
61   AliDxHFEParticleSelectionD0& operator=(const AliDxHFEParticleSelectionD0&);
62
63   THnSparse* fD0Properties;     //  the particle properties of selected particles
64   THnSparse* fD0Daughter0;      //  the particle properties of selected particles
65   THnSparse* fD0Daughter1;      //  the particle properties of selected particles
66   AliRDHFCuts* fCuts;           //! pointer to external cuts object 
67   Int_t     fFillOnlyD0D0bar;   //  flag to set what to fill (0 = both, 1 = D0 only, 2 = D0bar only)
68
69   // TODO: at the moment the dimensions of the different THnSparse objects are different
70   // needs to be consolidated
71   // TODO: one might need particle properties of all and/or at different cut stages
72
73   ClassDef(AliDxHFEParticleSelectionD0, 2);
74 };
75
76 #endif