1 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2 * See cxx source for full Copyright notice */
5 /*****************************************************************
6 AliFlowEvent: Event container for flow analysis
8 origin: Mikolaj Krzewicki (mikolaj.krzewicki@cern.ch)
9 mods: Redmer A. Bertens (rbertens@cern.ch)
10 *****************************************************************/
12 #ifndef ALIFLOWEVENT_H
13 #define ALIFLOWEVENT_H
15 class AliFlowTrackCuts;
22 class AliMultiplicity;
28 #include "AliFlowEventSimple.h"
30 class AliFlowEvent: public AliFlowEventSimple {
33 enum KineSource { kNoKine, kESDkine, kMCkine };
36 AliFlowEvent(Int_t n);
37 AliFlowEvent(const AliFlowEvent& event);
38 AliFlowEvent& operator=(const AliFlowEvent& event);
39 virtual ~AliFlowEvent() {}
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,
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 );
66 AliFlowEvent( const AliESDEvent* anInput,
67 const AliESDPmdTrack *pmdtracks,
68 const AliCFManager* poiCFManager );
72 AliFlowEvent( AliFlowTrackCuts* rpCuts,
73 AliFlowTrackCuts* poiCuts );
75 void Fill( AliFlowTrackCuts* rpCuts,
76 AliFlowTrackCuts* poiCuts );
78 void FindDaughters(Bool_t keepDaughtersInRPselection=kFALSE);
80 void SetMCReactionPlaneAngle(const AliMCEvent* mcEvent);
81 using AliFlowEventSimple::SetMCReactionPlaneAngle;
83 AliFlowTrack* GetTrack( Int_t i );
85 void InsertTrack(AliFlowTrack*);
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);
91 virtual void ClearFast();
92 virtual void ClearCachedRun();
95 AliFlowTrack* ReuseTrack( Int_t i);
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
112 ClassDef(AliFlowEvent,4)