ROOT logo
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */
//////////////////////////////////////////////////////////////////////////
// AliFlowEventSimpleMaker:
// Class to fill the AliFlowEventSimple with AliFlowTrackSimple objects
// author: N. van der Kolk (kolk@nikhef.nl),  Ante Bilandzic (anteb@nikhef.nl),  
// Raimond Snellings (Raimond.Snellings@nikhef.nl) 
//////////////////////////////////////////////////////////////////////////


#ifndef ALIFLOWEVENTSIMPLEMAKER_H
#define ALIFLOWEVENTSIMPLEMAKER_H

class AliFlowEventSimple;
class AliFlowTrackSimpleCuts;
class TTree;
class AliCFManager;
class AliMCEvent;
class AliESDEvent;
class AliAODEvent;
          
class AliFlowEventSimpleMaker {

 public:

  AliFlowEventSimpleMaker();             //constructor
  virtual ~AliFlowEventSimpleMaker();    //destructor

  void SetMCReactionPlaneAngle(Double_t fPhiRP)  { this->fMCReactionPlaneAngle = fPhiRP; } 
  //TTree
  AliFlowEventSimple* FillTracks(TTree* anInput, const AliFlowTrackSimpleCuts* rpCuts, const AliFlowTrackSimpleCuts* poiCuts);   //use own cut class
  //AliMCEvent
  AliFlowEventSimple* FillTracks(AliMCEvent* anInput);   //use own cuts
  AliFlowEventSimple* FillTracks(AliMCEvent* anInput, const AliCFManager* rpCFManager, const AliCFManager* poiCFManager ); //use CF(2x)
  //AliESDEvent
  AliFlowEventSimple* FillTracks(AliESDEvent* anInput);   //use own cuts
  AliFlowEventSimple* FillTracks(AliESDEvent* anInput,  const AliCFManager* rpCFManager, const AliCFManager* poiCFManager); //use CF(2x)
  //AliESDEvent & AliMCEvent
  AliFlowEventSimple* FillTracks(AliESDEvent* anInput, const AliMCEvent* anInputMc, Int_t anOption);  //use own cuts
  AliFlowEventSimple* FillTracks(AliESDEvent* anInput, const AliMCEvent* anInputMc, const AliCFManager* rpCFManager, const AliCFManager* poiCFManager, Int_t anOption);  //use CF(2x)
  // anOption = 0 : kine from ESD
  // anOption = 1 : kine from MC
  //AliAODEvent
  AliFlowEventSimple* FillTracks(AliAODEvent* anInput); //use own cuts
  AliFlowEventSimple* FillTracks(AliAODEvent* anInput, const AliCFManager* rpCFManager, const AliCFManager* poiCFManager);  //use CF(2x)
  
  void  SetNoOfLoops(Int_t noofl) {this->fNoOfLoops = noofl;}
  Int_t GetNoOfLoops() const      {return this->fNoOfLoops;} 
  
  void     SetEllipticFlowValue(Double_t elfv) {this->fEllipticFlowValue = elfv;}
  Double_t GetEllipticFlowValue() const        {return this->fEllipticFlowValue;} 
  
  void  SetMultiplicityOfEvent(Int_t multevnt) {this->fMultiplicityOfEvent = multevnt;}
  Int_t GetMultiplicityOfEvent() const         {return this->fMultiplicityOfEvent;} 
  
  void  SetMinMult(Int_t multmin) {this->fMinMult = multmin; }
  Int_t GetMinMult() const        {return this->fMinMult; }
  void  SetMaxMult(Int_t multmax) {this->fMaxMult = multmax; }
  Int_t GetMaxMult() const        {return this->fMaxMult; }

  void SetSubeventEtaRange(Double_t minA,Double_t maxA,Double_t minB,Double_t maxB) 
    {this->fEtaMinA = minA; this->fEtaMaxA = maxA;this->fEtaMinB = minB; this->fEtaMaxB = maxB;};

 private:
  AliFlowEventSimpleMaker(const AliFlowEventSimpleMaker& anAnalysis);            //copy constructor
  AliFlowEventSimpleMaker& operator=(const AliFlowEventSimpleMaker& anAnalysis); //assignment operator

  Double_t  fMCReactionPlaneAngle; // the angle of the reaction plane from the MC truth
  Int_t     fCount;                // counter for the number of events processed

  Int_t     fNoOfLoops;            // number of times to use the same particle (nonflow) 
  Double_t  fEllipticFlowValue;    // Add Flow. Must be in range [0,1].
  Int_t     fMultiplicityOfEvent;  // Set maximal multiplicity (when manipulating the event).

  Int_t     fMinMult;              // Minimum multiplicity from tracks selected using CORRFW
  Int_t     fMaxMult;              // Maximum multiplicity from tracks selected using CORRFW

  Double_t  fEtaMinA;              // minimum eta of subevent A eta range
  Double_t  fEtaMaxA;              // maximum eta of subevent A eta range
  Double_t  fEtaMinB;              // minimum eta of subevent B eta range
  Double_t  fEtaMaxB;              // maximum eta of subevent B eta range

  ClassDef(AliFlowEventSimpleMaker,1)    // macro for rootcint
};
 
     
#endif

 AliFlowEventSimpleMaker.h:1
 AliFlowEventSimpleMaker.h:2
 AliFlowEventSimpleMaker.h:3
 AliFlowEventSimpleMaker.h:4
 AliFlowEventSimpleMaker.h:5
 AliFlowEventSimpleMaker.h:6
 AliFlowEventSimpleMaker.h:7
 AliFlowEventSimpleMaker.h:8
 AliFlowEventSimpleMaker.h:9
 AliFlowEventSimpleMaker.h:10
 AliFlowEventSimpleMaker.h:11
 AliFlowEventSimpleMaker.h:12
 AliFlowEventSimpleMaker.h:13
 AliFlowEventSimpleMaker.h:14
 AliFlowEventSimpleMaker.h:15
 AliFlowEventSimpleMaker.h:16
 AliFlowEventSimpleMaker.h:17
 AliFlowEventSimpleMaker.h:18
 AliFlowEventSimpleMaker.h:19
 AliFlowEventSimpleMaker.h:20
 AliFlowEventSimpleMaker.h:21
 AliFlowEventSimpleMaker.h:22
 AliFlowEventSimpleMaker.h:23
 AliFlowEventSimpleMaker.h:24
 AliFlowEventSimpleMaker.h:25
 AliFlowEventSimpleMaker.h:26
 AliFlowEventSimpleMaker.h:27
 AliFlowEventSimpleMaker.h:28
 AliFlowEventSimpleMaker.h:29
 AliFlowEventSimpleMaker.h:30
 AliFlowEventSimpleMaker.h:31
 AliFlowEventSimpleMaker.h:32
 AliFlowEventSimpleMaker.h:33
 AliFlowEventSimpleMaker.h:34
 AliFlowEventSimpleMaker.h:35
 AliFlowEventSimpleMaker.h:36
 AliFlowEventSimpleMaker.h:37
 AliFlowEventSimpleMaker.h:38
 AliFlowEventSimpleMaker.h:39
 AliFlowEventSimpleMaker.h:40
 AliFlowEventSimpleMaker.h:41
 AliFlowEventSimpleMaker.h:42
 AliFlowEventSimpleMaker.h:43
 AliFlowEventSimpleMaker.h:44
 AliFlowEventSimpleMaker.h:45
 AliFlowEventSimpleMaker.h:46
 AliFlowEventSimpleMaker.h:47
 AliFlowEventSimpleMaker.h:48
 AliFlowEventSimpleMaker.h:49
 AliFlowEventSimpleMaker.h:50
 AliFlowEventSimpleMaker.h:51
 AliFlowEventSimpleMaker.h:52
 AliFlowEventSimpleMaker.h:53
 AliFlowEventSimpleMaker.h:54
 AliFlowEventSimpleMaker.h:55
 AliFlowEventSimpleMaker.h:56
 AliFlowEventSimpleMaker.h:57
 AliFlowEventSimpleMaker.h:58
 AliFlowEventSimpleMaker.h:59
 AliFlowEventSimpleMaker.h:60
 AliFlowEventSimpleMaker.h:61
 AliFlowEventSimpleMaker.h:62
 AliFlowEventSimpleMaker.h:63
 AliFlowEventSimpleMaker.h:64
 AliFlowEventSimpleMaker.h:65
 AliFlowEventSimpleMaker.h:66
 AliFlowEventSimpleMaker.h:67
 AliFlowEventSimpleMaker.h:68
 AliFlowEventSimpleMaker.h:69
 AliFlowEventSimpleMaker.h:70
 AliFlowEventSimpleMaker.h:71
 AliFlowEventSimpleMaker.h:72
 AliFlowEventSimpleMaker.h:73
 AliFlowEventSimpleMaker.h:74
 AliFlowEventSimpleMaker.h:75
 AliFlowEventSimpleMaker.h:76
 AliFlowEventSimpleMaker.h:77
 AliFlowEventSimpleMaker.h:78
 AliFlowEventSimpleMaker.h:79
 AliFlowEventSimpleMaker.h:80
 AliFlowEventSimpleMaker.h:81
 AliFlowEventSimpleMaker.h:82
 AliFlowEventSimpleMaker.h:83
 AliFlowEventSimpleMaker.h:84
 AliFlowEventSimpleMaker.h:85
 AliFlowEventSimpleMaker.h:86
 AliFlowEventSimpleMaker.h:87
 AliFlowEventSimpleMaker.h:88