]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/FEMTOSCOPY/AliFemto/AliFemtoEventReaderESDChainKine.h
Lines getting the matched track moved to a method in AliCalorimeterUtils. Lines copie...
[u/mrichter/AliRoot.git] / PWG2 / FEMTOSCOPY / AliFemto / AliFemtoEventReaderESDChainKine.h
1 ////////////////////////////////////////////////////////////////////////////////
2 //                                                                            //
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                             //
7 //                                                                            //
8 ////////////////////////////////////////////////////////////////////////////////
9 #ifndef ALIFEMTOEVENTREADERESDCHAINKINE_H
10 #define ALIFEMTOEVENTREADERESDCHAINKINE_H
11
12 #include "AliFemtoEventReader.h"
13 #include "AliFemtoEnumeration.h"
14
15 #include <string>
16 #include <vector>
17 #include <TTree.h>
18 #include <AliESDEvent.h>
19 #include <AliESDfriend.h>
20 #include <AliStack.h>
21 #include <list>
22 #include <AliGenEventHeader.h>
23
24 #include "AliESDpid.h"
25
26 class AliFemtoEvent;
27
28 class AliFemtoEventReaderESDChainKine : public AliFemtoEventReader 
29 {
30  public:
31   enum TrackType {kGlobal=0, kTPCOnly=1, kITSOnly=2, kSPDTracklet=3};
32   typedef enum TrackType ReadTrackType;
33
34   enum EventMult {kTracklet=0, kITSTPC=1, kITSPure=2, kGlobalCount=3, kSPDLayer1=4, kV0Centrality=5 };
35   typedef enum EventMult EstEventMult;
36
37   AliFemtoEventReaderESDChainKine();
38   AliFemtoEventReaderESDChainKine(const AliFemtoEventReaderESDChainKine& aReader);
39   ~AliFemtoEventReaderESDChainKine();
40
41   AliFemtoEventReaderESDChainKine& operator=(const AliFemtoEventReaderESDChainKine& aReader);
42
43   AliFemtoEvent* ReturnHbtEvent();
44   AliFemtoString Report();
45   void SetConstrained(const bool constrained);
46   bool GetConstrained() const;
47   void SetUseTPCOnly(const bool usetpconly);
48   bool GetUseTPCOnly() const;
49   void SetReadTPCInner(const bool readinner);
50   bool GetReadTPCInner() const;
51
52   void SetUseMultiplicity(EstEventMult aType);
53
54   void SetReadTrackType(ReadTrackType aType);
55
56   void SetESDSource(AliESDEvent *aESD);
57   void SetStackSource(AliStack *aStack);
58   void SetGenEventHeader(AliGenEventHeader *aGenHeader);
59   void SetRotateToEventPlane(short dorotate);
60
61   void SetESDPid(AliESDpid *esdPid) { fESDpid = esdPid; }
62
63  protected:
64
65  private:
66   string         fFileName;      // name of current ESD file
67   bool           fConstrained;   // flag to set which momentum from ESD file will be use
68   bool           fReadInner;     // flag to set if one wants to read TPC-only momentum
69   bool           fUseTPCOnly;    // flog to set to read TPC only momentum instead of the full
70   int            fNumberofEvent; // number of Events in ESD file
71   int            fCurEvent;      // number of current event
72   unsigned int   fCurFile;       // number of current file
73   AliESDEvent*   fEvent;         // ESD event
74   AliStack      *fStack;         // Kinematics stack pointer
75   AliGenEventHeader *fGenHeader; // Link to the generator event header
76   ReadTrackType  fTrackType;     // Type of track read
77   EstEventMult   fEstEventMult;  // Type of the event multiplicity estimator
78
79   short          fRotateToEventPlane; // Rotate the event so that event plane is at x=0
80
81   Float_t GetSigmaToVertex(double *impact, double *covar);
82
83   AliESDpid *fESDpid;
84   Bool_t fIsPidOwner;
85
86 #ifdef __ROOT__
87   ClassDef(AliFemtoEventReaderESDChainKine, 1)
88 #endif
89
90     };
91   
92 #endif
93
94