]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG1/AliMCInfoCuts.h
Fixing the decoding of regional header bits.
[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 \r
26   // getters \r
27   Int_t GetMinRowsWithDigits() const {return fMinRowsWithDigits;}\r
28   Float_t GetMaxR()            const {return fMaxR;}\r
29   Float_t GetMaxVz()           const {return fMaxVz;}\r
30   Float_t GetMinTPCSignal()    const {return fMinTPCSignal;}\r
31   Float_t GetMaxTPCSignal()    const {return fMaxTPCSignal;}\r
32 \r
33   Float_t GetEP()  const       {return ep;}\r
34   Float_t GetEM()  const       {return em;}\r
35   Float_t GetMuP() const       {return mup;}\r
36   Float_t GetMuM() const       {return mum;}\r
37   Float_t GetPiP() const       {return pip;}\r
38   Float_t GetPiM() const       {return pim;}\r
39   Float_t GetKP()  const       {return kp;}\r
40   Float_t GetKM()  const       {return km;}\r
41   Float_t GetProt() const      {return prot;}\r
42   Float_t GetProtBar() const   {return protbar;}\r
43  \r
44   // cuts init function\r
45   void Init();\r
46 \r
47   // check MC tracks\r
48   virtual Bool_t IsSelected(TObject *) {return kTRUE;}\r
49   virtual Bool_t IsSelected(TList *) {return kTRUE;}\r
50 \r
51   // add particle to array \r
52   void AddPdgParticle(Int_t idx=-1, Int_t pdgcode=0) const;\r
53 \r
54   // check particle in array \r
55   Bool_t IsPdgParticle(Int_t pdgcode=0) const;\r
56 \r
57   // check particle in array \r
58   Bool_t IsPosPdgParticle(Int_t pdgcode=0) const;\r
59 \r
60   // Merge output objects (needed by PROOF) \r
61   virtual Long64_t Merge(TCollection* list);\r
62 \r
63 private:\r
64   Int_t fMinRowsWithDigits; // min. number of TPC raws with digits  \r
65   Float_t fMaxR;            // max. R distance from MC vertex \r
66   Float_t fMaxVz;           // max. Z distance from MC vertex\r
67   Float_t fMinTPCSignal;    // min. TPC Signal calculated from Bethe Bloch formula\r
68   Float_t fMaxTPCSignal;    // max. TPC Signal calculated from Bethe Bloch formula\r
69  \r
70   TArrayI* aTrackParticles; // array of tracked particles \r
71 \r
72   // PDG tracked particles (later added to aTrackParticles)\r
73   enum enumData {\r
74     kNParticles = 10, // number of particles below\r
75     ep = -11,\r
76     em = 11,\r
77     mup = -13,\r
78     mum = 13,\r
79     pip = 211,\r
80     pim = -211,\r
81     kp = 321,\r
82     km = -321,\r
83     prot = 2212,\r
84     protbar = -2212\r
85   };\r
86 \r
87   AliMCInfoCuts(const AliMCInfoCuts&); // not implemented\r
88   AliMCInfoCuts& operator=(const AliMCInfoCuts&); // not implemented\r
89 \r
90   ClassDef(AliMCInfoCuts, 1)\r
91 };\r
92 \r
93 #endif // ALIMCINFOCUTS_H\r