]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGHF/correlationHF/AliDxHFEParticleSelectionD0.h
Corrected EINCLUDE
[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 class TList;
22
23 /**
24  * @class AliDxHFEParticleSelectionD0
25  * D0 selection for D-HFE correlations, implements the specific
26  * selection criteria.
27  */
28 class AliDxHFEParticleSelectionD0 : public AliDxHFEParticleSelection {
29   public:
30   /// constructor
31   AliDxHFEParticleSelectionD0(const char* opt="");
32   /// destructor
33   virtual ~AliDxHFEParticleSelectionD0();
34
35   enum {
36     kCutD0 = 0,
37     kCutList=1,
38     kNCutObjects
39   };
40
41   enum {
42     kDstar=0,
43     kCandSelTrack,
44     kIsInFinducialAcceptance,
45     kNegPtbin,
46     kNoDaugthers,
47     kSelected0,
48     kSelectedD0,
49     kSelectedD0bar,
50     kSelectedboth,
51     kNCutLabels
52   };
53
54   /// overloaded from AliDxHFEParticleSelection: init the control objects
55   virtual int InitControlObjects();
56   virtual THnSparse* DefineTHnSparse();
57   virtual int FillParticleProperties(AliVParticle* p, Double_t* date, int dimension) const;
58   virtual AliVParticle* CreateParticle(AliVParticle* track);
59
60   //Function for daughter control objects
61   //TODO: move to AliDxHFEParticleSelection to be used for several particles?
62   virtual int InitControlObjectsDaughters(TString name, int daughter);
63
64   //Overloaded from AliDxHFEParticleSelection
65   virtual TObjArray* Select(TObjArray* particles, const AliVEvent* pEvent);
66   using AliDxHFEParticleSelection::Select;
67
68   /// overloaded from AliDxHFEParticleSelection: check particle
69   virtual int IsSelected(AliVParticle* p, const AliVEvent *pEvent=NULL);
70   /// overloaded from AliDxHFEParticleSelection: set cuts
71   virtual void SetCuts(TObject* /*cuts*/, int level=0);
72   void SetInvMass(Double_t mass){fD0InvMass=mass;}
73   void SetPtBin(Int_t ptbin){fPtBin=ptbin;}
74
75   //AliRDHFCutsD0toKpi GetCuts()const {return fCuts;}
76   Int_t  GetFillOnlyD0D0bar() const {return fFillOnlyD0D0bar;}
77   Int_t GetPtBin() const {return fPtBin;}
78   Double_t GetInvMass() const {return fD0InvMass;}
79   AliRDHFCuts *GetHFCuts() const {return fCuts;}
80
81
82  protected:
83   /// overloaded from AliDxHFEParticleSelection: histogram particle properties
84   virtual int HistogramParticleProperties(AliVParticle* p, int selected=1);
85
86  private:
87
88   int ParseArguments(const char* arguments);
89
90   /// copy contructor prohibited
91   AliDxHFEParticleSelectionD0(const AliDxHFEParticleSelectionD0&);
92   /// assignment operator prohibited
93   AliDxHFEParticleSelectionD0& operator=(const AliDxHFEParticleSelectionD0&);
94
95   THnSparse* fD0Properties;     //  the particle properties of selected particles
96   THnSparse* fD0Daughter0;      //  the particle properties of selected particles
97   THnSparse* fD0Daughter1;      //  the particle properties of selected particles
98   AliRDHFCuts* fCuts;           //! pointer to external cuts object 
99   Int_t     fFillOnlyD0D0bar;   //  flag to set what to fill (0 = both, 1 = D0 only, 2 = D0bar only)
100   Double_t  fD0InvMass;         // D0InvMass
101   Int_t     fPtBin;             // Pt Bin
102   TList*    fHistoList;         // list of histograms
103
104   static const char* fgkDgTrackControlBinNames[]; //! bin labels for track control histogram
105   static const char* fgkCutBinNames[];            //! bin labels for cut histogram
106
107   // TODO: at the moment the dimensions of the different THnSparse objects are different
108   // needs to be consolidated
109   // TODO: one might need particle properties of all and/or at different cut stages
110
111   ClassDef(AliDxHFEParticleSelectionD0, 3);
112 };
113
114 #endif