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"
24 * @class AliDxHFEParticleSelectionD0
25 * D0 selection for D-HFE correlations, implements the specific
28 class AliDxHFEParticleSelectionD0 : public AliDxHFEParticleSelection {
31 AliDxHFEParticleSelectionD0(const char* opt="");
33 virtual ~AliDxHFEParticleSelectionD0();
44 kIsInFinducialAcceptance,
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);
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);
64 //Overloaded from AliDxHFEParticleSelection
65 virtual TObjArray* Select(TObjArray* particles, const AliVEvent* pEvent);
66 using AliDxHFEParticleSelection::Select;
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;}
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;}
83 /// overloaded from AliDxHFEParticleSelection: histogram particle properties
84 virtual int HistogramParticleProperties(AliVParticle* p, int selected=1);
88 int ParseArguments(const char* arguments);
90 /// copy contructor prohibited
91 AliDxHFEParticleSelectionD0(const AliDxHFEParticleSelectionD0&);
92 /// assignment operator prohibited
93 AliDxHFEParticleSelectionD0& operator=(const AliDxHFEParticleSelectionD0&);
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
104 static const char* fgkDgTrackControlBinNames[]; //! bin labels for track control histogram
105 static const char* fgkCutBinNames[]; //! bin labels for cut histogram
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
111 ClassDef(AliDxHFEParticleSelectionD0, 3);