]>
Commit | Line | Data |
---|---|---|
7c2974c8 | 1 | // |
e2bafbbc | 2 | // Class AliRsnReader |
7c2974c8 | 3 | // |
e2bafbbc | 4 | // This is the universal converter from any kind of source event |
aec0ec32 | 5 | // (i.e. ESD, standard AOD, MC) into the internal non-standard |
e2bafbbc | 6 | // AOD format used by RSN package. |
7 | // --- | |
8 | // This class reads all tracks in an input event and converts them | |
9 | // into AliRsnDaughters, and computes preliminarily the PID probabilities | |
10 | // by doing the Bayesian combination of a set of assigned prior probabilities | |
11 | // with the PID weights defined in each track. | |
12 | // --- | |
13 | // When filling the output event (AliRsnEvent), some arrays of indexes | |
14 | // are created in order to organize tracks according to their PID and charge, | |
15 | // which will then be used in further analysis steps. | |
7c2974c8 | 16 | // |
e2bafbbc | 17 | // author: A. Pulvirenti (alberto.pulvirenti@ct.infn.it) |
7c2974c8 | 18 | // |
b35947a8 | 19 | |
7c2974c8 | 20 | #ifndef ALIRSNREADER_H |
21 | #define ALIRSNREADER_H | |
b35947a8 | 22 | |
e2bafbbc | 23 | #include <TNamed.h> |
61f55b30 | 24 | |
15d5fd02 | 25 | #include "AliESDtrackCuts.h" |
26 | ||
aec0ec32 | 27 | #include "AliRsnDaughter.h" |
61f55b30 | 28 | #include "AliRsnPIDDefESD.h" |
15d5fd02 | 29 | #include "AliRsnCutSet.h" |
e2bafbbc | 30 | |
06351446 | 31 | class AliVEvent; |
7c2974c8 | 32 | class AliESDEvent; |
33 | class AliAODEvent; | |
34 | class AliMCEvent; | |
35 | class AliRsnEvent; | |
b35947a8 | 36 | |
61f55b30 | 37 | class AliRsnReader : public TObject |
b35947a8 | 38 | { |
aec0ec32 | 39 | public: |
06351446 | 40 | |
61f55b30 | 41 | AliRsnReader(); |
15d5fd02 | 42 | virtual ~AliRsnReader() { } |
aec0ec32 | 43 | |
06351446 | 44 | void SetCheckSplit(Bool_t doit = kTRUE) {fCheckSplit = doit;} |
61f55b30 | 45 | Bool_t AreSplitted(AliESDtrack *track1, AliESDtrack *track2); |
46 | Bool_t ResolveSplit(AliESDtrack *track1, AliESDtrack *track2); | |
47 | Bool_t DoesCheckSplit() {return fCheckSplit;} | |
48 | ||
06351446 | 49 | void SetRejectFakes(Bool_t doit = kTRUE) {fRejectFakes = doit;} |
61f55b30 | 50 | Bool_t DoesRejectFakes() {return fRejectFakes;} |
aec0ec32 | 51 | |
61f55b30 | 52 | void SetTPCOnly(Bool_t doit = kTRUE); |
53 | Bool_t DoesTPCOnly() {return fTPCOnly;} | |
aec0ec32 | 54 | |
cc781f3d | 55 | void SetCheckVertexStatus(Bool_t doit = kTRUE); |
56 | Bool_t DoesCheckVertexStatus() {return fCheckVertexStatus;} | |
57 | void SetMinNContributors(Int_t n) {fMinNContributors = n;} | |
58 | ||
15d5fd02 | 59 | void SetUseESDTrackCuts(Bool_t doit = kTRUE) {fUseESDTrackCuts = doit;} |
60 | Bool_t DoesESDTrackCuts() {return fUseESDTrackCuts;} | |
61 | AliESDtrackCuts* GetESDTrackCuts() {return &fESDTrackCuts;} | |
62 | ||
63 | void SetUseRsnTrackCuts(Bool_t doit = kTRUE) {fUseRsnTrackCuts = doit;} | |
64 | Bool_t DoesRsnTrackCuts() {return fUseRsnTrackCuts;} | |
65 | AliRsnCutSet* GetRsnTrackCuts() {return &fRsnTrackCuts;} | |
66 | ||
8a6b5ac8 | 67 | AliRsnPID* GetPID() {return &fPID;} |
15d5fd02 | 68 | AliRsnPIDDefESD* GetPIDDef() {return &fPIDDef;} |
8a6b5ac8 | 69 | void SetPIDArraysSize(Int_t value) {fPIDArraysSize = value;} |
70 | Int_t GetPIDArraysSize() {return fPIDArraysSize;} | |
aec0ec32 | 71 | |
e0baff8c | 72 | void SetTrackRefs(Int_t value) {fTrackRefs = value;} |
73 | void SetTrackRefsITS(Int_t value) {fTrackRefsITS = value;} | |
74 | void SetTrackRefsTPC(Int_t value) {fTrackRefsTPC = value;} | |
aec0ec32 | 75 | |
61f55b30 | 76 | void SetMinITSClusters(Int_t value) {fITSClusters = value;} |
77 | void SetMinTPCClusters(Int_t value) {fTPCClusters = value;} | |
78 | void SetMinTRDClusters(Int_t value) {fTRDClusters = value;} | |
aec0ec32 | 79 | void SetITSTPCTRDSectors(const Int_t& its = -1, const Int_t& tpc = -1, const Int_t& trd = -1); |
80 | ||
15d5fd02 | 81 | Bool_t ConvertTrack(AliRsnDaughter *daughter, AliESDtrack *track); |
82 | Bool_t ConvertTrack(AliRsnDaughter *daughter, AliAODTrack *track); | |
83 | Bool_t ConvertTrack(AliRsnDaughter *daughter, TParticle *particle); | |
84 | ||
61f55b30 | 85 | Bool_t Fill(AliRsnEvent *rsn, AliVEvent *event, AliMCEvent *refMC = 0); |
86 | Bool_t FillFromESD(AliRsnEvent *rsn, AliESDEvent *event, AliMCEvent *refMC = 0); | |
87 | Bool_t FillFromAOD(AliRsnEvent *rsn, AliAODEvent *event, AliMCEvent *refMC = 0); | |
88 | Bool_t FillFromMC(AliRsnEvent *rsn, AliMCEvent *mc); | |
89 | ||
90 | private: | |
b35947a8 | 91 | |
e2bafbbc | 92 | // dummy copy methods |
61f55b30 | 93 | AliRsnReader(const AliRsnReader ©) : |
8a6b5ac8 | 94 | TObject(copy), |
95 | fCheckSplit(0),fRejectFakes(0),fTPCOnly(0),fUseESDTrackCuts(0),fUseRsnTrackCuts(0), | |
96 | fCheckVertexStatus(kFALSE),fMinNContributors(0), | |
97 | fPID(),fPIDDef(copy.fPIDDef),fPIDArraysSize(0), | |
98 | fITSClusters(0),fTPCClusters(0),fTRDClusters(0), | |
99 | fTrackRefs(0),fTrackRefsITS(0),fTrackRefsTPC(0), | |
100 | fESDTrackCuts(),fRsnTrackCuts("") { /*nothing*/ } | |
e2bafbbc | 101 | AliRsnReader& operator=(const AliRsnReader&) {return (*this);} |
102 | ||
cc781f3d | 103 | Bool_t fCheckSplit; // flag to check and remove split tracks |
104 | Bool_t fRejectFakes; // flag to reject fake tracks (negative label) | |
105 | Bool_t fTPCOnly; // flag to use only the TPC for reading data | |
106 | Bool_t fUseESDTrackCuts; // flag to use ESD track cuts | |
107 | Bool_t fUseRsnTrackCuts; // flag to use ESD track cuts | |
108 | ||
109 | Bool_t fCheckVertexStatus; // reject events with vertex status = kFALSE | |
110 | Int_t fMinNContributors; // reject events whose primary vertex has too few contributors | |
15d5fd02 | 111 | |
8a6b5ac8 | 112 | AliRsnPID fPID; // manager for Bayes combination |
cc781f3d | 113 | AliRsnPIDDefESD fPIDDef; // manager for alternative PID weights (ESD only) |
8a6b5ac8 | 114 | Int_t fPIDArraysSize; // default size for the PID arrays in events |
aec0ec32 | 115 | |
cc781f3d | 116 | Int_t fITSClusters; // minimum number of ITS clusters to accept a track |
117 | Int_t fTPCClusters; // minimum number of TPC clusters to accept a track | |
118 | Int_t fTRDClusters; // minimum number of TRD clusters to accept a track | |
06351446 | 119 | |
cc781f3d | 120 | Int_t fTrackRefs; // minimum required track references for MC reading |
121 | Int_t fTrackRefsITS; // minimum required track references for MC reading (ITS) | |
122 | Int_t fTrackRefsTPC; // minimum required track references for MC reading (TPC) | |
61f55b30 | 123 | |
cc781f3d | 124 | AliESDtrackCuts fESDTrackCuts; // object for ESD track cuts |
125 | AliRsnCutSet fRsnTrackCuts; // other local cuts used in preliminary track selection | |
b35947a8 | 126 | |
06351446 | 127 | ClassDef(AliRsnReader, 1); |
b35947a8 | 128 | }; |
129 | ||
130 | #endif |