]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG1/AliMCInfoCuts.h
Update of Macros
[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   Bool_t IsSelected(TObject *) {return kTRUE;}\r
49 \r
50   // add particle to array \r
51   void AddPdgParticle(Int_t idx=-1, Int_t pdgcode=0) const;\r
52 \r
53   // check particle in array \r
54   Bool_t IsPdgParticle(Int_t pdgcode=0) const;\r
55 \r
56   // Merge output objects (needed by PROOF) \r
57   virtual Long64_t Merge(TCollection* list);\r
58 \r
59 private:\r
60   Int_t fMinRowsWithDigits; // min. number of TPC raws with digits  \r
61   Float_t fMaxR;            // max. R distance from MC vertex \r
62   Float_t fMaxVz;           // max. Z distance from MC vertex\r
63   Float_t fMinTPCSignal;    // min. TPC Signal calculated from Bethe Bloch formula\r
64   Float_t fMaxTPCSignal;    // max. TPC Signal calculated from Bethe Bloch formula\r
65  \r
66   TArrayI* aTrackParticles; // array of tracked particles \r
67 \r
68   // PDG tracked particles (later added to aTrackParticles)\r
69   enum enumData {\r
70     kNParticles = 10, // number of particles below\r
71     ep = -11,\r
72     em = 11,\r
73     mup = -13,\r
74     mum = 13,\r
75     pip = 211,\r
76     pim = -211,\r
77     kp = 321,\r
78     km = -321,\r
79     prot = 2212,\r
80     protbar = -2212\r
81   };\r
82 \r
83   AliMCInfoCuts(const AliMCInfoCuts&); // not implemented\r
84   AliMCInfoCuts& operator=(const AliMCInfoCuts&); // not implemented\r
85 \r
86   ClassDef(AliMCInfoCuts, 1)\r
87 };\r
88 \r
89 #endif // ALIMCINFOCUTS_H\r