]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGCF/FEMTOSCOPY/AliFemto/AliFemtoEventReaderStandard.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGCF / FEMTOSCOPY / AliFemto / AliFemtoEventReaderStandard.h
1 ////////////////////////////////////////////////////////////////////////////////
2 //                                                                            //
3 // AliFemtoEventReaderStandard - the reader class for the Alice ESD, AOD      //
4 // the model Kinematics information tailored for the Task framework           //
5 // Authors: Adam Kisiel Adam.Kisiel@cern.ch                                   //
6 //                                                                            //
7 ////////////////////////////////////////////////////////////////////////////////
8 #ifndef ALIFEMTOEVENTREADERSTANDARD_H
9 #define ALIFEMTOEVENTREADERSTANDARD_H
10
11 #include "AliFemtoEventReader.h"
12 #include "AliFemtoEnumeration.h"
13
14 #include <string>
15 #include <vector>
16 #include <TTree.h>
17 #include <AliESDEvent.h>
18 #include <AliAODEvent.h>
19 #include <AliESDfriend.h>
20 #include <AliStack.h>
21 #include <list>
22 #include <AliGenEventHeader.h>
23 #include <AliPhysicsSelection.h>
24 #include <AliESDtrackCuts.h>
25 #include <AliAODMCParticle.h>
26
27 class AliFemtoEvent;
28 class AliFemtoTrack;
29
30 class AliFemtoEventReaderStandard : public AliFemtoEventReader 
31 {
32  public:
33   enum InputType {kUnknown = -1, kESD=0, kAOD=1, kESDKine=2, kAODKine=3};
34   typedef enum InputType AliFemtoInputType;
35
36   AliFemtoEventReaderStandard();
37   AliFemtoEventReaderStandard(const AliFemtoEventReaderStandard& aReader);
38   ~AliFemtoEventReaderStandard();
39
40   AliFemtoEventReaderStandard& operator=(const AliFemtoEventReaderStandard& aReader);
41
42   AliFemtoEvent* ReturnHbtEvent();
43   AliFemtoString Report();
44
45   void SetESDSource(AliESDEvent *aESD);
46   void SetAODSource(AliAODEvent *aAOD);
47   void SetStackSource(AliStack *aStack);
48   void SetInputType(AliFemtoInputType aInput);
49   void SetGenEventHeader(AliGenEventHeader *aGenHeader);
50   void SetUsePhysicsSelection(const bool usephysics);
51
52   void SetESDTrackCuts(AliESDtrackCuts *esdcuts);
53   void SetUseTPCOnly(const bool usetpconly);
54
55  protected:
56
57   void CopyAODtoFemtoTrack(const AliAODTrack *tAodTrack, AliFemtoTrack *tFemtoTrack);
58   AliAODMCParticle* GetParticleWithLabel(TClonesArray *mcP, Int_t aLabel);
59
60  private:
61   string             fFileName;      //  name of current ESD file
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   AliESDEvent       *fESDEvent;      //! ESD event
66   AliAODEvent       *fAODEvent;      //! AOD event
67   AliStack          *fStack;         //! Kinematics stack pointer
68   AliGenEventHeader *fGenHeader;     //! Link to the generator event header
69   AliFemtoInputType  fInputType;     //  Select data input type
70
71   bool                 fUsePhysicsSel; // if true the physics selection class will be used
72   AliPhysicsSelection *fSelect;        // Class to select only physics events
73
74   AliESDtrackCuts     *fTrackCuts;     // Link to external ESD track cut
75   bool                 fUseTPCOnly;    // if true the TPC only parameters will be used
76
77 #ifdef __ROOT__
78   ClassDef(AliFemtoEventReaderStandard, 1)
79 #endif
80
81 };
82   
83 #endif
84
85