]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG1/AliMCInfoCuts.h
Implementation of Trigger simulation (Raphael Tieulent)
[u/mrichter/AliRoot.git] / PWG1 / AliMCInfoCuts.h
CommitLineData
6d1c79ca 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
12class TArrayI;\r
13\r
14class AliMCInfoCuts : public AliAnalysisCuts\r
15{\r
16public:\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
3dd64180 25 void SetMinTrackLength(const Int_t min=0) {fMinTrackLength = min;}\r
6d1c79ca 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
3dd64180 33 Float_t GetMinTrackLength() const {return fMinTrackLength;}\r
6d1c79ca 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
ac909664 50 virtual Bool_t IsSelected(TObject *) {return kTRUE;}\r
51 virtual Bool_t IsSelected(TList *) {return kTRUE;}\r
6d1c79ca 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
b4126c69 59 // check particle in array \r
60 Bool_t IsPosPdgParticle(Int_t pdgcode=0) const;\r
61\r
6d1c79ca 62 // Merge output objects (needed by PROOF) \r
63 virtual Long64_t Merge(TCollection* list);\r
64\r
65private:\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
3dd64180 71 Float_t fMinTrackLength; // min. TPC minimum track length\r
6d1c79ca 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