Add possibility to rotate event
[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 class AliFemtoEvent;
25
26 class AliFemtoEventReaderESDChainKine : public AliFemtoEventReader 
27 {
28  public:
29   AliFemtoEventReaderESDChainKine();
30   AliFemtoEventReaderESDChainKine(const AliFemtoEventReaderESDChainKine& aReader);
31   ~AliFemtoEventReaderESDChainKine();
32
33   AliFemtoEventReaderESDChainKine& operator=(const AliFemtoEventReaderESDChainKine& aReader);
34
35   AliFemtoEvent* ReturnHbtEvent();
36   AliFemtoString Report();
37   void SetConstrained(const bool constrained);
38   bool GetConstrained() const;
39   void SetUseTPCOnly(const bool usetpconly);
40   bool GetUseTPCOnly() const;
41
42   void SetESDSource(AliESDEvent *aESD);
43   void SetStackSource(AliStack *aStack);
44   void SetGenEventHeader(AliGenEventHeader *aGenHeader);
45   void SetRotateToEventPlane(short dorotate);
46
47  protected:
48
49  private:
50   string         fFileName;      // name of current ESD file
51   bool           fConstrained;   // flag to set which momentum from ESD file will be use
52   bool           fUseTPCOnly;    // flog to set to read TPC only momentum instead of the full
53   int            fNumberofEvent; // number of Events in ESD file
54   int            fCurEvent;      // number of current event
55   unsigned int   fCurFile;       // number of current file
56   AliESDEvent*   fEvent;         // ESD event
57   AliStack      *fStack;         // Kinematics stack pointer
58   AliGenEventHeader *fGenHeader; // Link to the generator event header
59
60   short          fRotateToEventPlane; // Rotate the event so that event plane is at x=0
61
62   Float_t GetSigmaToVertex(double *impact, double *covar);
63
64 #ifdef __ROOT__
65   ClassDef(AliFemtoEventReaderESDChainKine, 1)
66 #endif
67
68     };
69   
70 #endif
71
72