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 *
8 /// @file AliDxHFEParticleSelectionD0.h
9 /// @author Sedat Altinpinar, Hege Erdal, Matthias Richter
11 /// @brief D0 selection for D-HFE correlations
14 #ifndef ALIDXHFEPARTICLESELECTIOND0_H
15 #define ALIDXHFEPARTICLESELECTIOND0_H
17 #include "AliDxHFEParticleSelection.h"
23 * @class AliDxHFEParticleSelectionD0
24 * D0 selection for D-HFE correlations, implements the specific
27 class AliDxHFEParticleSelectionD0 : public AliDxHFEParticleSelection {
30 AliDxHFEParticleSelectionD0(const char* opt="");
32 virtual ~AliDxHFEParticleSelectionD0();
34 /// overloaded from AliDxHFEParticleSelection: init the control objects
35 virtual int InitControlObjects();
36 virtual THnSparse* DefineTHnSparse();
37 virtual int FillParticleProperties(AliVParticle* p, Double_t* date, int dimension) const;
38 virtual AliVParticle* CreateParticle(AliVParticle* track);
40 //Function for daughter control objects
41 //TODO: move to AliDxHFEParticleSelection to be used for several particles?
42 virtual int InitControlObjectsDaughters(TString name, int daughter);
44 //Overloaded from AliDxHFEParticleSelection
45 virtual TObjArray* Select(TObjArray* particles, const AliVEvent* pEvent);
46 using AliDxHFEParticleSelection::Select;
48 /// overloaded from AliDxHFEParticleSelection: check particle
49 virtual int IsSelected(AliVParticle* p, const AliVEvent *pEvent=NULL);
50 /// overloaded from AliDxHFEParticleSelection: set cuts
51 virtual void SetCuts(TObject* /*cuts*/, int level=0);
53 //AliRDHFCutsD0toKpi GetCuts()const {return fCuts;}
54 Int_t GetFillOnlyD0D0bar() const {return fFillOnlyD0D0bar;}
55 Int_t GetPtBin() const {return fPtBin;}
56 Double_t GetInvMass() const {return fD0InvMass;}
59 /// overloaded from AliDxHFEParticleSelection: histogram particle properties
60 virtual int HistogramParticleProperties(AliVParticle* p, int selected=1);
63 /// copy contructor prohibited
64 AliDxHFEParticleSelectionD0(const AliDxHFEParticleSelectionD0&);
65 /// assignment operator prohibited
66 AliDxHFEParticleSelectionD0& operator=(const AliDxHFEParticleSelectionD0&);
68 THnSparse* fD0Properties; // the particle properties of selected particles
69 THnSparse* fD0Daughter0; // the particle properties of selected particles
70 THnSparse* fD0Daughter1; // the particle properties of selected particles
71 AliRDHFCuts* fCuts; //! pointer to external cuts object
72 Int_t fFillOnlyD0D0bar; // flag to set what to fill (0 = both, 1 = D0 only, 2 = D0bar only)
73 Double_t fD0InvMass; // D0InvMass
74 Int_t fPtBin; // Pt Bin
76 static const char* fgkDgTrackControlBinNames[]; //! bin labels for track control histogram
78 // TODO: at the moment the dimensions of the different THnSparse objects are different
79 // needs to be consolidated
80 // TODO: one might need particle properties of all and/or at different cut stages
82 ClassDef(AliDxHFEParticleSelectionD0, 2);