]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGHF/vertexingHF/AliRDHFCutsLctopK0sfromAODtracks.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGHF / vertexingHF / AliRDHFCutsLctopK0sfromAODtracks.h
1 #ifndef ALIRDHFCUTSLCTOPK0SFROMAODTRACKS_H
2 #define ALIRDHFCUTSLCTOPK0SFROMAODTRACKS_H
3 /* Copyright(c) 1998-2010, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7
8 //***********************************************************
9 // Class AliRDHFCutsXictoPLUSXiPiPifromAODtracks
10 // class for cuts on AOD reconstructed Lc-> pK0s
11 //***********************************************************
12
13 #include "AliRDHFCuts.h"
14
15 class AliRDHFCutsLctopK0sfromAODtracks : public AliRDHFCuts
16 {
17  public:
18
19   enum EPIDStrategy{
20     kNSigmaCuts,
21     kCombinedCuts
22   };
23
24   AliRDHFCutsLctopK0sfromAODtracks(const char* name="CutsLctopK0s");
25   virtual ~AliRDHFCutsLctopK0sfromAODtracks();
26   AliRDHFCutsLctopK0sfromAODtracks(const AliRDHFCutsLctopK0sfromAODtracks& source);
27   AliRDHFCutsLctopK0sfromAODtracks& operator=(const AliRDHFCutsLctopK0sfromAODtracks& source);
28
29   using AliRDHFCuts::GetCutVarsForOpt;
30   virtual void GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int_t nvars,Int_t *pdgdaughters);
31
32   using AliRDHFCuts::IsSelected;
33   virtual Int_t IsSelected(TObject* obj,Int_t selectionLevel);
34   using AliRDHFCuts::IsSelectedPID;
35   virtual Int_t IsSelectedPID(AliAODRecoDecayHF* obj);
36   Int_t IsSelectedCombinedPID(AliAODRecoDecayHF* obj);
37   Double_t GetProtonProbabilityTPCTOF(AliAODTrack *trk);
38
39   void SetPIDStrategy(EPIDStrategy pidStrategy){fPIDStrategy=pidStrategy;}
40   EPIDStrategy GetPIDStrategy() const {return fPIDStrategy;}
41   void SetCombinedPIDThreshold(Double_t a){fCombinedPIDThreshold=a;}
42   Double_t GetCombinedPIDThreshold(){return fCombinedPIDThreshold;}
43
44   void SetUseOnTheFlyV0(Bool_t a) { fUseOnTheFlyV0=a; }
45   Bool_t GetUseOnTheFlyV0() { return fUseOnTheFlyV0; }
46
47   Bool_t SingleTrkCuts(AliAODTrack *trk);
48   Bool_t SingleV0Cuts(AliAODv0 *v0, AliAODVertex *vert);
49   Bool_t SelectWithRoughCuts(AliAODv0 *v0, AliAODTrack *trk1);
50
51   void SetProdTrackPtMin(Double_t a){fProdTrackPtMin=a;}
52   void SetProdTrackEtaRange(Double_t a){fProdTrackEtaRange=a;}
53   void SetProdUseAODFilterBit(Bool_t a){fProdUseAODFilterBit=a;}
54   void SetProdV0MassTolK0s(Double_t a){fProdV0MassTolK0s=a;}
55   void SetProdV0PtMin(Double_t a){fProdV0PtMin=a;}
56   void SetProdV0CosPointingAngleToPrimVtxMin(Double_t a){fProdV0CosPointingAngleToPrimVtxMin=a;}
57   void SetProdV0DcaDaughtersMax(Double_t a){fProdV0DcaDaughtersMax=a;}
58   void SetProdV0DaughterEtaRange(Double_t a){fProdV0DaughterEtaRange=a;}
59   void SetProdV0DaughterPtMin(Double_t a){fProdV0DaughterPtMin=a;}
60   void SetProdV0DaughterTPCClusterMin(Double_t a){fProdV0DaughterTPCClusterMin=a;}
61   
62   void SetProdRoughMassTol(Double_t a){fProdRoughMassTol=a;}
63   void SetProdRoughPtMin(Double_t a){fProdRoughPtMin=a;}
64   
65   Double_t GetProdTrackPtMin(){return fProdTrackPtMin;}
66   Double_t GetProdTrackEtaRange(){return fProdTrackEtaRange;}
67   Bool_t   GetProdUseAODFilterBit(){return fProdUseAODFilterBit;}
68   Double_t GetProdV0MassTolK0s(){return fProdV0MassTolK0s;}
69   Double_t GetProdV0PtMin(){return fProdV0PtMin;}
70   Double_t GetProdV0CosPointingAngleToPrimVtxMin(){return fProdV0CosPointingAngleToPrimVtxMin;}
71   Double_t GetProdV0DcaDaughtersMax(){return fProdV0DcaDaughtersMax;}
72   Double_t GetProdV0DaughterEtaRange(){return fProdV0DaughterEtaRange;}
73   Double_t GetProdV0DaughterPtMin(){return fProdV0DaughterPtMin;}
74   Double_t GetProdV0DaughterTPCClusterMin(){return fProdV0DaughterTPCClusterMin;}
75   
76   Double_t GetProdRoughMassTol(){return fProdRoughMassTol;}
77   Double_t GetProdRoughPtMin(){return fProdRoughPtMin;}
78   
79   void  SetNCuts(Int_t ncuts){fnCuts=ncuts;}
80   Int_t GetNCutsArray(){return fnCuts;}
81   void  SetCutsArray(Int_t nCuts, Int_t nVars,Int_t nPtBins,Float_t ***cutsRD);
82   void  SetCutsArray(Int_t nTotBins,Float_t *cutsRD);
83   void  SetCutsFromArray(Int_t nCuts);
84   Int_t GetCutArrayID(Int_t ic,Int_t iv,Int_t ip);
85
86  protected:
87         
88  private:
89
90   EPIDStrategy fPIDStrategy;        //PID strategy
91   Double_t fCombinedPIDThreshold;   //Threshold used in  IsSelectedCombinedPID 
92   Bool_t   fUseOnTheFlyV0;          //Flag to check if we use on-the-fly v0
93   
94   Double_t fProdTrackPtMin;         //Minimum Track pT used before object creation
95   Double_t fProdTrackEtaRange;      //eta range used before object creation
96   Bool_t   fProdUseAODFilterBit;    //Flag for AOD filter Bit used before object creation
97   Double_t fProdV0MassTolK0s;       //K0s mass selection  used before object creation
98   Double_t fProdV0PtMin;            //Minimum K0s pT used before object creation
99   Double_t fProdV0CosPointingAngleToPrimVtxMin;//V0 pointing angle used before object creation
100   Double_t fProdV0DcaDaughtersMax;  //Max DCA between V0 daughters used before object creation
101   Double_t fProdV0DaughterEtaRange; //V0Daughter eta range used before object creation
102   Double_t fProdV0DaughterPtMin;    //V0 Daughter pT min used before object creation
103   Double_t fProdV0DaughterTPCClusterMin;//V0 daughter Minimum TPC cluster pT used before object creation
104   Double_t fProdRoughMassTol;       //Mass cut for Lc used before object creation
105   Double_t fProdRoughPtMin;         //pT cut for Lc used before object creation
106   
107   Int_t fnCuts;               //Number of Cuts defined 
108   Int_t fnTotalCutBins;       // fnCuts *fnVars * fnPtBins
109   Float_t *fCutsArray;        //[fnTotalCutBins]
110
111   ClassDef(AliRDHFCutsLctopK0sfromAODtracks,1);
112 };
113
114 #endif