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