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