]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGLF/RESONANCES/AliRsnCutV0.h
Fix in AddTaskXiStar to remove physics selection (not needed)
[u/mrichter/AliRoot.git] / PWGLF / RESONANCES / AliRsnCutV0.h
1 #ifndef ALIRSNCUTV0_H
2 #define ALIRSNCUTV0_H
3
4 #include <TMath.h>
5 #include <TString.h>
6
7 #include "AliRsnCut.h"
8 #include "AliPIDResponse.h"
9
10 class AliESDtrack;
11 class AliAODTrack;
12
13
14 class AliRsnCutV0 : public AliRsnCut {
15
16 public:
17
18
19    //AliRsnCutV0(const char *name = "AliRsnCutV0", Int_t hypothesis = kLambda0);
20    AliRsnCutV0(const char *name = "AliRsnCutV0", Int_t hypothesis = kLambda0, AliPID::EParticleType pid = AliPID::kProton, AliPID::EParticleType pid2 = AliPID::kPion);
21    AliRsnCutV0(const AliRsnCutV0 &copy);
22    AliRsnCutV0 &operator=(const AliRsnCutV0 &copy);
23    virtual ~AliRsnCutV0() { }
24
25    void           SetESDtrackCuts(AliESDtrackCuts *cuts)   {fESDtrackCuts = cuts;}
26    void           SetHypothesis(Int_t code);
27    void           SetTolerance(Double_t value)             {fTolerance = value;}
28    void           SetMaxDCAVertex(Double_t value)          {fMaxDCAVertex = value;}
29    void           SetMinCosPointingAngle(Double_t value)   {fMinCosPointAngle = value;}
30    void           SetMaxDaughtersDCA(Double_t value)       {fMaxDaughtersDCA = value;}
31    void           SetMaxRapidity(Double_t value)           {fMaxRapidity = value;}
32
33    void           SetPIDCut1(Double_t value)               {fPIDCut1 = value;}
34    void           SetPIDCut2(Double_t value)               {fPIDCut2 = value;}
35    void           SetPIDCut3(Double_t value)               {fPIDCut3 = value;}
36
37    virtual Bool_t IsSelected(TObject *obj);
38    virtual void   Print(const Option_t *option = "") const;
39
40 protected:
41
42    Bool_t      CheckESD(AliESDv0 *track);
43    Bool_t      CheckAOD(AliAODv0 *track);
44
45    Int_t            fHypothesis;       // PDG code corresponding to expected V0 hypothesis
46    Double_t         fMass;             // mass corresponding to hypothesis
47    Double_t         fTolerance;        // tolerance in the difference between computed and expected mass
48    Double_t         fMaxDCAVertex;     // max allowed DCA from primary vertex
49    Double_t         fMinCosPointAngle; // min allowed cosine of pointing angle
50    Double_t         fMaxDaughtersDCA;  // max allowed DCA between the two daughers
51    Double_t         fMaxRapidity;      // max allowed V0 rapidity
52
53    AliPID::EParticleType fPID;         // PID for track
54    AliPID::EParticleType fPID2;        // PID for track
55
56    Double_t         fPIDCut1;          // nsigmas for protons < 600 MeV/c
57    Double_t         fPIDCut2;          // nsigmas for protons > 600 MeV/c
58    Double_t         fPIDCut3;          // nsigmas for pions
59
60
61    AliESDtrackCuts *fESDtrackCuts;     // quality cuts for v0 daughters
62
63    ClassDef(AliRsnCutV0, 1)
64 };
65
66 //__________________________________________________________________________________________________
67 inline void AliRsnCutV0::SetHypothesis(Int_t code)
68 {
69 //
70 // Assign a V0 species hypothesis, which also assign the expected mass
71 //
72
73    fHypothesis = code;
74
75    switch (fHypothesis) {
76       case kLambda0:
77          fMass = 1.11568;
78          break;
79       case kLambda0Bar:
80          fMass = 1.11568;
81          break;
82       case kK0Short:
83          fMass = 0.497614;
84          break;
85       default:
86          AliError(Form("You are setting an unexpected hypothesis: %d", fHypothesis));
87          fMass = 1E20;
88    }
89 }
90
91 #endif