1 ////////////////////////////////////////////////////////////////////////////////
3 // AliFemtoEventReaderESDChainKine - the reader class for the Alice ESD and //
4 // the model Kinematics information tailored for the Task framework and the //
5 // Reads in AliESDfriend to create shared hit/quality information //
6 // Authors: Adam Kisiel kisiel@mps.ohio-state.edu //
8 ////////////////////////////////////////////////////////////////////////////////
9 #ifndef ALIFEMTOEVENTREADERESDCHAINKINE_H
10 #define ALIFEMTOEVENTREADERESDCHAINKINE_H
12 #include "AliFemtoEventReader.h"
13 #include "AliFemtoEnumeration.h"
18 #include <AliESDEvent.h>
19 #include <AliESDfriend.h>
22 #include <AliGenEventHeader.h>
25 #include "AliFemtoV0.h"
26 #include "AliESDtrackCuts.h"
28 #include "AliESDpid.h"
32 class AliFemtoEventReaderESDChainKine : public AliFemtoEventReader
35 enum TrackType {kGlobal=0, kTPCOnly=1, kITSOnly=2, kSPDTracklet=3};
36 typedef enum TrackType ReadTrackType;
38 enum EventMult {kCentrality=0, kGlobalCount=1, kReferenceITSTPC=2, kReferenceITSSA=3, kReferenceTracklets=4, kSPDLayer1=5, kVZERO=6, kCentralityTRK=7, kCentralityZNA=8, kCentralityCL1=9, kCentralityCND=10, kCentralityV0A=11, kCentralityV0C=12, kCentralityZNC=13, kCentralityCL0=14, kCentralityFMD=15, kCentralityTKL=16, kCentralityNPA=17};
39 typedef enum EventMult EstEventMult;
41 AliFemtoEventReaderESDChainKine();
42 AliFemtoEventReaderESDChainKine(const AliFemtoEventReaderESDChainKine& aReader);
43 ~AliFemtoEventReaderESDChainKine();
45 AliFemtoEventReaderESDChainKine& operator=(const AliFemtoEventReaderESDChainKine& aReader);
47 AliFemtoEvent* ReturnHbtEvent();
48 AliFemtoString Report();
49 void SetConstrained(const bool constrained);
50 bool GetConstrained() const;
51 void SetUseTPCOnly(const bool usetpconly);
52 bool GetUseTPCOnly() const;
53 void SetReadTPCInner(const bool readinner);
54 bool GetReadTPCInner() const;
56 void SetUseMultiplicity(EstEventMult aType);
58 void SetReadTrackType(ReadTrackType aType);
60 void SetESDSource(AliESDEvent *aESD);
61 void SetStackSource(AliStack *aStack);
62 void SetGenEventHeader(AliGenEventHeader *aGenHeader);
63 void SetRotateToEventPlane(short dorotate);
65 void SetESDPid(AliESDpid *esdPid) { fESDpid = esdPid; }
67 void SetReadV0(bool a);
68 void CopyESDtoFemtoV0(AliESDv0 *tESDv0, AliFemtoV0 *tFemtoV0, AliESDEvent *tESDevent);
69 void GetGlobalPositionAtGlobalRadiiThroughTPC(AliESDtrack *track, Float_t bfield, Float_t globalPositionsAtRadii[9][3]);
70 void SetMagneticFieldSign(int s);
71 void SetKaonAnalysis(Bool_t);
76 string fFileName; // name of current ESD file
77 bool fConstrained; // flag to set which momentum from ESD file will be use
78 bool fReadInner; // flag to set if one wants to read TPC-only momentum
79 bool fUseTPCOnly; // flog to set to read TPC only momentum instead of the full
80 int fNumberofEvent; // number of Events in ESD file
81 int fCurEvent; // number of current event
82 unsigned int fCurFile; // number of current file
83 AliESDEvent* fEvent; // ESD event
84 AliStack *fStack; // Kinematics stack pointer
85 AliGenEventHeader *fGenHeader; // Link to the generator event header
86 ReadTrackType fTrackType; // Type of track read
87 EstEventMult fEstEventMult; // Type of the event multiplicity estimator
89 short fRotateToEventPlane; // Rotate the event so that event plane is at x=0
91 Float_t GetSigmaToVertex(double *impact, double *covar);
96 int fMagFieldSign; // Magnetic field sign
98 Bool_t isKaonAnalysis; // switch for Kaon analysis
100 ClassDef(AliFemtoEventReaderESDChainKine, 1)