]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/FLOW/AliFlowCommon/AliFlowEventSimple.h
putting more functionality into the flow event
[u/mrichter/AliRoot.git] / PWG2 / FLOW / AliFlowCommon / AliFlowEventSimple.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   AliFlowEventSimple: A simple event 
7   for flow analysis                  
8                                      
9   origin: Naomi van der Kolk (kolk@nikhef.nl)           
10           Ante Bilandzic     (anteb@nikhef.nl)         
11           Raimond Snellings  (Raimond.Snellings@nikhef.nl)    
12   mods:   Mikolaj Krzewicki  (mikolaj.krzewicki@cern.ch)
13 *****************************************************************/
14
15 #ifndef ALIFLOWEVENTSIMPLE_H
16 #define ALIFLOWEVENTSIMPLE_H
17
18 #include "TObject.h"
19 #include "TParameter.h"
20 class TTree;
21 class AliFlowVector;
22 class AliFlowTrackSimple;
23 class AliFlowTrackSimpleCuts;
24
25 class AliFlowEventSimple: public TObject {
26
27  public:
28   AliFlowEventSimple();
29   AliFlowEventSimple(Int_t aLenght);
30   AliFlowEventSimple(TTree* anInput, const AliFlowTrackSimpleCuts* rpCuts, const AliFlowTrackSimpleCuts* poiCuts);
31   AliFlowEventSimple(const AliFlowEventSimple& anEvent);
32   AliFlowEventSimple& operator=(const AliFlowEventSimple& anEvent);
33   virtual  ~AliFlowEventSimple();
34
35   Bool_t  IsFolder() const {return kTRUE;};
36   void    Browse(TBrowser *b); 
37   void    Print(Option_t* option = "") const;      //method to print stats
38   
39   Int_t    NumberOfTracks() const                   { return fNumberOfTracks; }
40   Int_t    GetEventNSelTracksRP() const             { return fEventNSelTracksRP; } 
41   void     SetEventNSelTracksRP(Int_t nr)           { fEventNSelTracksRP = nr; }  
42   Double_t GetMCReactionPlaneAngle() const          { return fMCReactionPlaneAngle; }
43   void     SetMCReactionPlaneAngle(Double_t fPhiRP) { fMCReactionPlaneAngle=fPhiRP; fMCReactionPlaneAngleIsSet=kTRUE; }
44   Bool_t   IsSetMCReactionPlaneAngle() const        { return fMCReactionPlaneAngleIsSet; }
45
46   void ResolutionPt(Double_t res);
47   void TagSubeventsInEta(Double_t etaMinA, Double_t etaMaxA, Double_t etaMinB, Double_t etaMaxB );
48   void CloneTracks(Int_t n);
49   void AddFlow( Double_t flow );
50  
51   AliFlowTrackSimple* GetTrack(Int_t i);
52   void AddTrack( AliFlowTrackSimple* track ); 
53  
54   AliFlowVector GetQ(Int_t n=2, TList *weightsList=NULL, Bool_t usePhiWeights=kFALSE, Bool_t usePtWeights=kFALSE, Bool_t useEtaWeights=kFALSE);
55   void Get2Qsub(AliFlowVector* Qarray, Int_t n=2, TList *weightsList=NULL, Bool_t usePhiWeights=kFALSE, Bool_t usePtWeights=kFALSE, Bool_t useEtaWeights=kFALSE);  
56
57   //these should go away!!!!
58   TObjArray* TrackCollection() const                { return fTrackCollection; } //deprecated!
59   void     SetNumberOfTracks(Int_t nr)              { fNumberOfTracks = nr; }
60
61  protected:
62   TObjArray*              fTrackCollection;           // collection of tracks
63   Int_t                   fNumberOfTracks;            // number of tracks
64   Int_t                   fEventNSelTracksRP;         // number of tracks that have passed the RP selection
65   Double_t                fMCReactionPlaneAngle;      // the angle of the reaction plane from the MC truth
66   Bool_t                  fMCReactionPlaneAngleIsSet; // did we set it from MC?
67   TParameter<Int_t>*      fNumberOfTracksWrap;        //! number of tracks in TBrowser
68   TParameter<Int_t>*      fEventNSelTracksRPWrap;     //! number of tracks that have passed the RP selection in TBrowser
69   TParameter<Double_t>*   fMCReactionPlaneAngleWrap;   //! the angle of the reaction plane from the MC truth in TBrowser
70
71   ClassDef(AliFlowEventSimple,1)                       // simplified event used in flow analysis 
72 };
73
74 #endif
75
76