]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGHF/correlationHF/AliDxHFEParticleSelectionD0.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGHF / correlationHF / AliDxHFEParticleSelectionD0.h
CommitLineData
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 19class AliVEvent;
20class AliRDHFCuts;
2229ac91 21class TList;
9535cec9 22
72c0a987 23/**
24 * @class AliDxHFEParticleSelectionD0
25 * D0 selection for D-HFE correlations, implements the specific
26 * selection criteria.
27 */
28class 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