]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG/FLOW/Tasks/AliFlowEvent.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWG / FLOW / Tasks / AliFlowEvent.h
1 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2 * See cxx source for full Copyright notice */
3 /* $Id$ */
4
5 /*****************************************************************
6   AliFlowEvent: Event container for flow analysis                  
7                                      
8   origin:   Mikolaj Krzewicki  (mikolaj.krzewicki@cern.ch)
9   mods:     Redmer A. Bertens (rbertens@cern.ch)
10 *****************************************************************/
11
12 #ifndef ALIFLOWEVENT_H
13 #define ALIFLOWEVENT_H
14
15 class AliFlowTrackCuts;
16 class AliFlowTrack;
17 class AliCFManager;
18 class AliVEvent;
19 class AliMCEvent;
20 class AliESDEvent;
21 class AliAODEvent;
22 class AliMultiplicity;
23 class AliESDPmdTrack;
24 class AliFlowVector;
25 class TH2F;
26 class TArrayD;
27
28 #include "AliFlowEventSimple.h"
29
30 class AliFlowEvent: public AliFlowEventSimple {
31 public:
32
33   enum KineSource { kNoKine, kESDkine, kMCkine };
34
35   AliFlowEvent();
36   AliFlowEvent(Int_t n);
37   AliFlowEvent(const AliFlowEvent& event);
38   AliFlowEvent& operator=(const AliFlowEvent& event);
39   virtual  ~AliFlowEvent() {}
40
41   //deprecated
42   AliFlowEvent( const AliMCEvent* anInput,
43                 const AliCFManager* rpCFManager=NULL,
44                 const AliCFManager* poiCFManager=NULL ); //use CF(2x)
45   AliFlowEvent( const AliESDEvent* anInput,  
46                 const AliCFManager* rpCFManager=NULL, 
47                 const AliCFManager* poiCFManager=NULL ); //use CF(2x)
48   AliFlowEvent( const AliAODEvent* anInput, 
49                 const AliCFManager* rpCFManager=NULL, 
50                 const AliCFManager* poiCFManager=NULL );  //use CF(2x)
51   AliFlowEvent( const AliESDEvent* anInput,
52                 const AliCFManager* poiCFManager,
53                 Bool_t hybrid);
54   AliFlowEvent( const AliESDEvent* anInput, 
55                 const AliMCEvent* anInputMc, 
56                 KineSource anOption=kNoKine,
57                 const AliCFManager* rpCFManager=NULL, 
58                 const AliCFManager* poiCFManager=NULL );  //use CF(2x)
59   AliFlowEvent( const AliESDEvent* anInput,
60                 const AliMultiplicity* anInputTracklets,
61                 const AliCFManager* poiCFManager );
62   AliFlowEvent( const AliESDEvent* anInput,
63                 const TH2F* anInputFMDhist,
64                 const AliCFManager* poiCFManager );
65   //pmd
66   AliFlowEvent( const AliESDEvent* anInput,
67                 const AliESDPmdTrack *pmdtracks,
68                 const AliCFManager* poiCFManager );
69   //pmd
70   //end of deprecated
71
72   AliFlowEvent( AliFlowTrackCuts* rpCuts,
73                 AliFlowTrackCuts* poiCuts );
74   
75   void Fill( AliFlowTrackCuts* rpCuts,
76              AliFlowTrackCuts* poiCuts );
77
78   void FindDaughters(Bool_t keepDaughtersInRPselection=kFALSE);
79
80   void SetMCReactionPlaneAngle(const AliMCEvent* mcEvent);
81   using AliFlowEventSimple::SetMCReactionPlaneAngle;
82
83   AliFlowTrack* GetTrack( Int_t i );
84
85   void InsertTrack(AliFlowTrack*);
86
87   virtual AliFlowVector GetQ(Int_t n=2, TList *weightsList=NULL, Bool_t usePhiWeights=kFALSE, Bool_t usePtWeights=kFALSE, Bool_t useEtaWeights=kFALSE);
88   virtual void Get2Qsub(AliFlowVector* Qarray, Int_t n = 2, TList *weightsList = 0x0, Bool_t usePhiWeights = 0x0, Bool_t usePtWeights = 0x0, Bool_t useEtaWeights = 0x0);
89   void SetVZEROCalibrationForTrackCuts(AliFlowTrackCuts* cuts);
90
91   virtual void ClearFast();
92   virtual void ClearCachedRun();
93
94 protected:
95   AliFlowTrack* ReuseTrack( Int_t i);
96
97 private:
98   Int_t         fApplyRecentering;      // apply recentering of q-vectors? 2010 is 10h style, 2011 is 11h style
99   Int_t         fCachedRun;             //! cached calibration info for vzero
100   Int_t         fVZEROcentralityBin;    //! centrality bin for the current event 
101   Float_t       fMeanQ[9][2][2];        //! recentering
102   Float_t       fWidthQ[9][2][2];       //! recentering
103   Float_t       fMeanQv3[9][2][2];      //! recentering
104   Float_t       fWidthQv3[9][2][2];     //! recentering
105   AliVEvent*    fEvent;                 //! current event
106   TArrayD*      fChi2A;                 //! chi vs cent for vzero A ep_2
107   TArrayD*      fChi2C;                 //! chi vs cent for vzero C ep_2
108   TArrayD*      fChi3A;                 //! chi vs cent for vzero A ep_3
109   TArrayD*      fChi3C;                 //! chi vs cent for vzero C ep_3
110
111
112   ClassDef(AliFlowEvent,4)
113 };
114
115 #endif
116
117