]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG1/AliMCInfoCuts.h
adding cut on relative uncertainty on pt (Bastian)
[u/mrichter/AliRoot.git] / PWG1 / AliMCInfoCuts.h
1 #ifndef ALIMCINFOCUTS_H\r
2 #define ALIMCINFOCUTS_H\r
3 \r
4 //------------------------------------------------------------------------------\r
5 // Class to keep selection cuts for MC tracks. \r
6 // \r
7 // Author: J.Otwinowski 04/02/2008 \r
8 //------------------------------------------------------------------------------\r
9 \r
10 #include "AliAnalysisCuts.h"\r
11 \r
12 class TArrayI;\r
13 \r
14 class AliMCInfoCuts : public AliAnalysisCuts\r
15 {\r
16 public:\r
17   AliMCInfoCuts(const Char_t* name ="AliMCInfoCuts", const Char_t *title ="");\r
18   virtual ~AliMCInfoCuts(); \r
19  \r
20   // setters \r
21   void SetMinRowsWithDigits(const Int_t min=0) {fMinRowsWithDigits = min;}\r
22   void SetMaxR(const Float_t max=1e99)         {fMaxR = max;}\r
23   void SetMaxVz(const Float_t max=1e99)        {fMaxVz = max;}\r
24   void SetRangeTPCSignal(const Float_t min=0, const Float_t max=1e99)  {fMinTPCSignal = min; fMaxTPCSignal = max;}\r
25   void SetMinTrackLength(const Int_t min=0)    {fMinTrackLength = min;}\r
26 \r
27   // getters \r
28   Int_t GetMinRowsWithDigits() const {return fMinRowsWithDigits;}\r
29   Float_t GetMaxR()            const {return fMaxR;}\r
30   Float_t GetMaxVz()           const {return fMaxVz;}\r
31   Float_t GetMinTPCSignal()    const {return fMinTPCSignal;}\r
32   Float_t GetMaxTPCSignal()    const {return fMaxTPCSignal;}\r
33   Float_t GetMinTrackLength()    const {return fMinTrackLength;}\r
34 \r
35   Float_t GetEP()  const       {return ep;}\r
36   Float_t GetEM()  const       {return em;}\r
37   Float_t GetMuP() const       {return mup;}\r
38   Float_t GetMuM() const       {return mum;}\r
39   Float_t GetPiP() const       {return pip;}\r
40   Float_t GetPiM() const       {return pim;}\r
41   Float_t GetKP()  const       {return kp;}\r
42   Float_t GetKM()  const       {return km;}\r
43   Float_t GetProt() const      {return prot;}\r
44   Float_t GetProtBar() const   {return protbar;}\r
45  \r
46   // cuts init function\r
47   void Init();\r
48 \r
49   // check MC tracks\r
50   virtual Bool_t IsSelected(TObject *) {return kTRUE;}\r
51   virtual Bool_t IsSelected(TList *) {return kTRUE;}\r
52 \r
53   // add particle to array \r
54   void AddPdgParticle(Int_t idx=-1, Int_t pdgcode=0) const;\r
55 \r
56   // check particle in array \r
57   Bool_t IsPdgParticle(Int_t pdgcode=0) const;\r
58 \r
59   // check particle in array \r
60   Bool_t IsPosPdgParticle(Int_t pdgcode=0) const;\r
61 \r
62   // Merge output objects (needed by PROOF) \r
63   virtual Long64_t Merge(TCollection* list);\r
64 \r
65 private:\r
66   Int_t fMinRowsWithDigits; // min. number of TPC raws with digits  \r
67   Float_t fMaxR;            // max. R distance from MC vertex \r
68   Float_t fMaxVz;           // max. Z distance from MC vertex\r
69   Float_t fMinTPCSignal;    // min. TPC Signal calculated from Bethe Bloch formula\r
70   Float_t fMaxTPCSignal;    // max. TPC Signal calculated from Bethe Bloch formula\r
71   Float_t fMinTrackLength;  // min. TPC minimum track length\r
72  \r
73   TArrayI* aTrackParticles; // array of tracked particles \r
74 \r
75   // PDG tracked particles (later added to aTrackParticles)\r
76   enum enumData {\r
77     kNParticles = 10, // number of particles below\r
78     ep = -11,\r
79     em = 11,\r
80     mup = -13,\r
81     mum = 13,\r
82     pip = 211,\r
83     pim = -211,\r
84     kp = 321,\r
85     km = -321,\r
86     prot = 2212,\r
87     protbar = -2212\r
88   };\r
89 \r
90   AliMCInfoCuts(const AliMCInfoCuts&); // not implemented\r
91   AliMCInfoCuts& operator=(const AliMCInfoCuts&); // not implemented\r
92 \r
93   ClassDef(AliMCInfoCuts, 1)\r
94 };\r
95 \r
96 #endif // ALIMCINFOCUTS_H\r