]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG2/RESONANCES/AliRsnReader.h
removed external class
[u/mrichter/AliRoot.git] / PWG2 / RESONANCES / AliRsnReader.h
CommitLineData
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 31class AliVEvent;
7c2974c8 32class AliESDEvent;
33class AliAODEvent;
34class AliMCEvent;
35class AliRsnEvent;
b35947a8 36
61f55b30 37class 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 &copy) :
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