]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGLF/RESONANCES/AliRsnCutV0.h
Added AliRsnAction, AliRsnPIDRange
[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
9 class AliESDtrack;
10 class AliAODTrack;
11
12 class AliRsnCutV0 : public AliRsnCut {
13
14 public:
15
16    AliRsnCutV0(const char *name = "AliRsnCutV0", Int_t hypothesis = kLambda0);
17    AliRsnCutV0(const AliRsnCutV0 &copy);
18    AliRsnCutV0 &operator=(const AliRsnCutV0 &copy);
19    virtual ~AliRsnCutV0() { }
20
21    void           SetESDtrackCuts(AliESDtrackCuts *cuts)   {fESDtrackCuts = cuts;}
22    void           SetHypothesis(Int_t code);
23    void           SetTolerance(Double_t value)             {fTolerance = value;}
24    void           SetMaxDCAVertex(Double_t value)          {fMaxDCAVertex = value;}
25    void           SetMinCosPointingAngle(Double_t value)   {fMinCosPointAngle = value;}
26    void           SetMaxDaughtersDCA(Double_t value)       {fMaxDaughtersDCA = value;}
27
28    virtual Bool_t IsSelected(TObject *obj);
29    virtual void   Print(const Option_t *option = "") const;
30
31 protected:
32
33    Bool_t      CheckESD(AliESDv0 *track);
34    Bool_t      CheckAOD(AliAODv0 *track);
35
36    Int_t            fHypothesis;       // PDG code corresponding to expected V0 hypothesis
37    Double_t         fMass;             // mass corresponding to hypothesis
38    Double_t         fTolerance;        // tolerance in the difference between computed and expected mass
39    Double_t         fMaxDCAVertex;     // max allowed DCA from primary vertex
40    Double_t         fMinCosPointAngle; // min allowed cosine of pointing angle
41    Double_t         fMaxDaughtersDCA;  // max allowed DCA between the two daughers
42    //AliPID::EParticleType fRefPID[2];
43    //Double_t              fNSigmaTPC[2];
44    //Double_t              fNSigmaTOF[3];
45
46    AliESDtrackCuts *fESDtrackCuts;     // quality cuts for v0 daughters
47
48    ClassDef(AliRsnCutV0, 1)
49 };
50
51 //__________________________________________________________________________________________________
52 inline void AliRsnCutV0::SetHypothesis(Int_t code)
53 {
54 //
55 // Assign a V0 species hypothesis, which also assign the expected mass
56 //
57
58    fHypothesis = code;
59
60    switch (fHypothesis) {
61       case kLambda0:
62       case kLambda0Bar:
63          fMass = 1.11568;
64          break;
65       case kK0Short:
66          fMass = 0.497614;
67          break;
68       default:
69          AliError(Form("You are setting an unexpected hypothesis: %d", fHypothesis));
70          fMass = 1E20;
71    }
72 }
73
74 #endif