]>
Commit | Line | Data |
---|---|---|
72c0a987 | 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 | ||
9535cec9 | 19 | class AliVEvent; |
20 | class AliRDHFCuts; | |
2229ac91 | 21 | class TList; |
9535cec9 | 22 | |
72c0a987 | 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 | ||
2229ac91 | 35 | enum { |
36 | kCutD0 = 0, | |
37 | kCutList=1, | |
38 | kNCutObjects | |
39 | }; | |
40 | ||
41 | enum { | |
42 | kDstar=0, | |
43 | kCandSelTrack, | |
fad30eb8 | 44 | kIsInFinducialAcceptance, |
2229ac91 | 45 | kNegPtbin, |
46 | kNoDaugthers, | |
47 | kSelected0, | |
48 | kSelectedD0, | |
49 | kSelectedD0bar, | |
50 | kSelectedboth, | |
51 | kNCutLabels | |
52 | }; | |
53 | ||
93fcaf9f | 54 | /// overloaded from AliDxHFEParticleSelection: init the control objects |
55 | virtual int InitControlObjects(); | |
dcf83226 | 56 | virtual THnSparse* DefineTHnSparse(); |
57 | virtual int FillParticleProperties(AliVParticle* p, Double_t* date, int dimension) const; | |
dfe96b90 | 58 | virtual AliVParticle* CreateParticle(AliVParticle* track); |
93fcaf9f | 59 | |
9535cec9 | 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 | ||
72c0a987 | 68 | /// overloaded from AliDxHFEParticleSelection: check particle |
9535cec9 | 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); | |
b4779749 | 72 | void SetInvMass(Double_t mass){fD0InvMass=mass;} |
73 | void SetPtBin(Int_t ptbin){fPtBin=ptbin;} | |
9535cec9 | 74 | |
75 | //AliRDHFCutsD0toKpi GetCuts()const {return fCuts;} | |
76 | Int_t GetFillOnlyD0D0bar() const {return fFillOnlyD0D0bar;} | |
d731501a | 77 | Int_t GetPtBin() const {return fPtBin;} |
78 | Double_t GetInvMass() const {return fD0InvMass;} | |
b4779749 | 79 | AliRDHFCuts *GetHFCuts() const {return fCuts;} |
80 | ||
72c0a987 | 81 | |
82 | protected: | |
93fcaf9f | 83 | /// overloaded from AliDxHFEParticleSelection: histogram particle properties |
9535cec9 | 84 | virtual int HistogramParticleProperties(AliVParticle* p, int selected=1); |
72c0a987 | 85 | |
86 | private: | |
b4779749 | 87 | |
88 | int ParseArguments(const char* arguments); | |
89 | ||
72c0a987 | 90 | /// copy contructor prohibited |
91 | AliDxHFEParticleSelectionD0(const AliDxHFEParticleSelectionD0&); | |
92 | /// assignment operator prohibited | |
93 | AliDxHFEParticleSelectionD0& operator=(const AliDxHFEParticleSelectionD0&); | |
94 | ||
9535cec9 | 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) | |
2229ac91 | 100 | Double_t fD0InvMass; // D0InvMass |
101 | Int_t fPtBin; // Pt Bin | |
102 | TList* fHistoList; // list of histograms | |
d731501a | 103 | |
d731501a | 104 | static const char* fgkDgTrackControlBinNames[]; //! bin labels for track control histogram |
2229ac91 | 105 | static const char* fgkCutBinNames[]; //! bin labels for cut histogram |
9535cec9 | 106 | |
93fcaf9f | 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 | ||
2229ac91 | 111 | ClassDef(AliDxHFEParticleSelectionD0, 3); |
72c0a987 | 112 | }; |
113 | ||
114 | #endif |