//-*- Mode: C++ -*- // $Id$ //* This file is property of and copyright by the ALICE Project * //* ALICE Experiment at CERN, All rights reserved. * //* See cxx source for full Copyright notice * /// @file AliDxHFEParticleSelectionD0.h /// @author Sedat Altinpinar, Hege Erdal, Matthias Richter /// @date 2012-03-19 /// @brief D0 selection for D-HFE correlations /// #ifndef ALIDXHFEPARTICLESELECTIOND0_H #define ALIDXHFEPARTICLESELECTIOND0_H #include "AliDxHFEParticleSelection.h" class AliVEvent; class AliRDHFCuts; /** * @class AliDxHFEParticleSelectionD0 * D0 selection for D-HFE correlations, implements the specific * selection criteria. */ class AliDxHFEParticleSelectionD0 : public AliDxHFEParticleSelection { public: /// constructor AliDxHFEParticleSelectionD0(const char* opt=""); /// destructor virtual ~AliDxHFEParticleSelectionD0(); /// overloaded from AliDxHFEParticleSelection: init the control objects virtual int InitControlObjects(); virtual THnSparse* DefineTHnSparse() const; // TODO: function can be renamed to better describe what it's doing virtual int DefineParticleProperties(AliVParticle* p, Double_t* date, int dimension) const; //Function for daughter control objects //TODO: move to AliDxHFEParticleSelection to be used for several particles? virtual int InitControlObjectsDaughters(TString name, int daughter); //Overloaded from AliDxHFEParticleSelection virtual TObjArray* Select(TObjArray* particles, const AliVEvent* pEvent); using AliDxHFEParticleSelection::Select; /// overloaded from AliDxHFEParticleSelection: check particle virtual int IsSelected(AliVParticle* p, const AliVEvent *pEvent=NULL); /// overloaded from AliDxHFEParticleSelection: set cuts virtual void SetCuts(TObject* /*cuts*/, int level=0); //AliRDHFCutsD0toKpi GetCuts()const {return fCuts;} Int_t GetFillOnlyD0D0bar() const {return fFillOnlyD0D0bar;} Int_t GetPtBin() const {return fPtBin;} Double_t GetInvMass() const {return fD0InvMass;} protected: /// overloaded from AliDxHFEParticleSelection: histogram particle properties virtual int HistogramParticleProperties(AliVParticle* p, int selected=1); private: /// copy contructor prohibited AliDxHFEParticleSelectionD0(const AliDxHFEParticleSelectionD0&); /// assignment operator prohibited AliDxHFEParticleSelectionD0& operator=(const AliDxHFEParticleSelectionD0&); THnSparse* fD0Properties; // the particle properties of selected particles THnSparse* fD0Daughter0; // the particle properties of selected particles THnSparse* fD0Daughter1; // the particle properties of selected particles AliRDHFCuts* fCuts; //! pointer to external cuts object Int_t fFillOnlyD0D0bar; // flag to set what to fill (0 = both, 1 = D0 only, 2 = D0bar only) Double_t fD0InvMass; // D0InvMass Int_t fPtBin; // Pt Bin static const char* fgkTrackControlBinNames[]; //! bin labels for track control histogram static const char* fgkDgTrackControlBinNames[]; //! bin labels for track control histogram // TODO: at the moment the dimensions of the different THnSparse objects are different // needs to be consolidated // TODO: one might need particle properties of all and/or at different cut stages ClassDef(AliDxHFEParticleSelectionD0, 2); }; #endif