]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGCF/FEMTOSCOPY/AliFemto/AliFemtoEventReaderKinematicsChainESD.h
Merge branch 'master' into TRDdev
[u/mrichter/AliRoot.git] / PWGCF / FEMTOSCOPY / AliFemto / AliFemtoEventReaderKinematicsChainESD.h
1 /////////////////////////////////////////////////////////////////////////////////////
2 //                                                                                 //
3 // AliFemtoEventReaderKinematicsChainESD - 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: Malgorzata Janik, Warsaw University of Technology, majanik@cern.ch     //
7 //          Lukasz Graczykowski, Warsaw University of Technology, lgraczyk@cern.ch //
8 //                                                                                 //
9 /////////////////////////////////////////////////////////////////////////////////////
10
11
12 #ifndef ALIFEMTOEVENTREADERKINEMATICSCHAINESD_H
13 #define ALIFEMTOEVENTREADERKINEMATICSCHAINESD_H
14
15 #include "AliFemtoEventReader.h"
16 #include "AliFemtoEnumeration.h"
17 #include "AliFemtoV0.h"
18 #include "AliESDtrackCuts.h"
19
20 #include <string>
21 #include <vector>
22 #include <TTree.h>
23 #include <AliStack.h>
24 #include <AliESDEvent.h>
25 #include <list>
26 #include <AliGenEventHeader.h>
27
28
29
30 class AliFemtoEvent;
31
32 class AliFemtoEventReaderKinematicsChainESD : public AliFemtoEventReader 
33 {
34  public:
35   enum EventMult {kGlobalCount=0, kVZERO=1, kReferenceITSTPC=2, kCentrality=3};
36   typedef enum EventMult EstEventMult;
37
38   AliFemtoEventReaderKinematicsChainESD();
39   AliFemtoEventReaderKinematicsChainESD(const AliFemtoEventReaderKinematicsChainESD& aReader);
40   ~AliFemtoEventReaderKinematicsChainESD();
41
42   AliFemtoEventReaderKinematicsChainESD& operator=(const AliFemtoEventReaderKinematicsChainESD& aReader);
43
44   AliFemtoEvent* ReturnHbtEvent();
45   AliFemtoString Report();
46   void SetConstrained(bool constrained);
47   bool GetConstrained() const;
48
49   //void SetESDSource(AliESDEvent *aESD);
50   void SetStackSource(AliStack *aStack);
51   void SetESDSource(AliESDEvent *aESD);
52   void SetGenEventHeader(AliGenEventHeader *aGenHeader);
53   void SetRotateToEventPlane(short dorotate);
54   void SetUseMultiplicity(EstEventMult aType);
55   void CopyAODtoFemtoV0(TParticle *tv0, AliFemtoV0 *tFemtoV0 );
56
57  protected:
58
59  private:
60   string         fFileName;      // name of current ESD file
61   bool           fConstrained;   // flag to set which momentum from ESD file will be use
62   int            fNumberofEvent; // number of Events in ESD file
63   int            fCurEvent;      // number of current event
64   unsigned int   fCurFile;       // number of current file
65   AliStack       *fStack;         // Kinematics stack pointer
66   AliESDEvent    *fEvent;         // ESD event
67   AliGenEventHeader *fGenHeader; // Link to the generator event header
68   EstEventMult   fEstEventMult;  // Type of the event multiplicity estimator
69   short          fRotateToEventPlane; // Rotate the event so that event plane is at x=0
70
71   Float_t GetSigmaToVertex(double *impact, double *covar);
72
73 #ifdef __ROOT__
74   ClassDef(AliFemtoEventReaderKinematicsChainESD, 1)
75 #endif
76
77     };
78   
79 #endif
80
81