]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/RESONANCES/AliRsnCutV0.h
Added generalisation of y-cut for pairs
[u/mrichter/AliRoot.git] / PWGLF / RESONANCES / AliRsnCutV0.h
CommitLineData
8082e538 1#ifndef ALIRSNCUTV0_H
2#define ALIRSNCUTV0_H
3
4#include <TMath.h>
5#include <TString.h>
6
7#include "AliRsnCut.h"
3da8cef7 8#include "AliPIDResponse.h"
8082e538 9
76d89202 10#include "AliRsnCutTrackQuality.h"
11
8082e538 12class AliESDtrack;
13class AliAODTrack;
14
3da8cef7 15
8082e538 16class AliRsnCutV0 : public AliRsnCut {
17
18public:
19
3da8cef7 20
3da8cef7 21 AliRsnCutV0(const char *name = "AliRsnCutV0", Int_t hypothesis = kLambda0, AliPID::EParticleType pid = AliPID::kProton, AliPID::EParticleType pid2 = AliPID::kPion);
61f275d1 22 AliRsnCutV0(const AliRsnCutV0 &copy);
23 AliRsnCutV0 &operator=(const AliRsnCutV0 &copy);
8082e538 24 virtual ~AliRsnCutV0() { }
61f275d1 25
8082e538 26 void SetESDtrackCuts(AliESDtrackCuts *cuts) {fESDtrackCuts = cuts;}
27 void SetHypothesis(Int_t code);
28 void SetTolerance(Double_t value) {fTolerance = value;}
29 void SetMaxDCAVertex(Double_t value) {fMaxDCAVertex = value;}
30 void SetMinCosPointingAngle(Double_t value) {fMinCosPointAngle = value;}
31 void SetMaxDaughtersDCA(Double_t value) {fMaxDaughtersDCA = value;}
9d4bb6d8 32 void SetMinTPCcluster(Int_t value) {fMinTPCcluster = value;}
3da8cef7 33 void SetMaxRapidity(Double_t value) {fMaxRapidity = value;}
92932daf 34 void SetDCARPtFormula(const char *formula) {fDCARptFormula = formula;}
35
36 void SetPIDCutProton(Double_t value) {fPIDCutProton = value;}
37 void SetPIDCutPion(Double_t value) {fPIDCutPion = value;}
38
39
40 AliRsnCutTrackQuality *CutQuality() {return &fCutQuality;}
41 void SetAODTestFilterBit(Int_t value) {fAODTestFilterBit = value;}
76d89202 42 Int_t GetAODTestFilterBit() {return fAODTestFilterBit;}
43
8082e538 44 virtual Bool_t IsSelected(TObject *obj);
45 virtual void Print(const Option_t *option = "") const;
46
47protected:
48
49 Bool_t CheckESD(AliESDv0 *track);
50 Bool_t CheckAOD(AliAODv0 *track);
61f275d1 51
92932daf 52
8082e538 53 Int_t fHypothesis; // PDG code corresponding to expected V0 hypothesis
54 Double_t fMass; // mass corresponding to hypothesis
55 Double_t fTolerance; // tolerance in the difference between computed and expected mass
56 Double_t fMaxDCAVertex; // max allowed DCA from primary vertex
57 Double_t fMinCosPointAngle; // min allowed cosine of pointing angle
58 Double_t fMaxDaughtersDCA; // max allowed DCA between the two daughers
9d4bb6d8 59 Int_t fMinTPCcluster; // min allowed TOC cluster
3da8cef7 60 Double_t fMaxRapidity; // max allowed V0 rapidity
92932daf 61 TString fDCARptFormula; // min DCAR pt dependent formula
62
3da8cef7 63 AliPID::EParticleType fPID; // PID for track
64 AliPID::EParticleType fPID2; // PID for track
65
92932daf 66 Double_t fPIDCutProton; // nsigmas for protons
67 Double_t fPIDCutPion; // nsigmas for pions
68
8082e538 69 AliESDtrackCuts *fESDtrackCuts; // quality cuts for v0 daughters
92932daf 70
71 AliRsnCutTrackQuality fCutQuality; // track quality cut
72
73 Int_t fAODTestFilterBit; // test filter bit for AODs
74
8082e538 75 ClassDef(AliRsnCutV0, 1)
76};
77
78//__________________________________________________________________________________________________
79inline void AliRsnCutV0::SetHypothesis(Int_t code)
80{
81//
82// Assign a V0 species hypothesis, which also assign the expected mass
83//
84
85 fHypothesis = code;
61f275d1 86
8082e538 87 switch (fHypothesis) {
88 case kLambda0:
3da8cef7 89 fMass = 1.11568;
74d60285 90 break;
8082e538 91 case kLambda0Bar:
92 fMass = 1.11568;
93 break;
94 case kK0Short:
95 fMass = 0.497614;
96 break;
97 default:
98 AliError(Form("You are setting an unexpected hypothesis: %d", fHypothesis));
99 fMass = 1E20;
100 }
101}
102
103#endif