/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * * See cxx source for full Copyright notice */ /* $Id$ */ /***************************************************************** AliFlowEventSimple: A simple event for flow analysis origin: Naomi van der Kolk (kolk@nikhef.nl) Ante Bilandzic (anteb@nikhef.nl) Raimond Snellings (Raimond.Snellings@nikhef.nl) mods: Mikolaj Krzewicki (mikolaj.krzewicki@cern.ch) *****************************************************************/ #ifndef ALIFLOWEVENTSIMPLE_H #define ALIFLOWEVENTSIMPLE_H #include "TObject.h" #include "TParameter.h" #include "TMath.h" class TTree; class TF1; class AliFlowVector; class AliFlowTrackSimple; class AliFlowTrackSimpleCuts; class AliFlowEventSimple: public TObject { public: enum ConstructionMethod {kEmpty,kGenerate}; AliFlowEventSimple(); AliFlowEventSimple( Int_t nParticles, ConstructionMethod m=kEmpty, TF1* ptDist=NULL, Double_t phiMin=0.0, Double_t phiMax=TMath::TwoPi(), Double_t etaMin=-1.0, Double_t etaMax= 1.0 ); AliFlowEventSimple(TTree* anInput, const AliFlowTrackSimpleCuts* rpCuts, const AliFlowTrackSimpleCuts* poiCuts); AliFlowEventSimple(const AliFlowEventSimple& anEvent); AliFlowEventSimple& operator=(const AliFlowEventSimple& anEvent); virtual ~AliFlowEventSimple(); Bool_t IsFolder() const {return kTRUE;}; void Browse(TBrowser *b); void Print(Option_t* option = "") const; //method to print stats Int_t NumberOfTracks() const { return fNumberOfTracks; } Int_t GetReferenceMultiplicity() const { return fReferenceMultiplicity; } void SetReferenceMultiplicity( Int_t m ) { fReferenceMultiplicity = m; } Int_t GetEventNSelTracksRP() const { return fNumberOfFlowTags[0]; } void SetEventNSelTracksRP(Int_t nr) { fNumberOfFlowTags[0] = nr; } Int_t GetEventNSelTracksPOI() const { return fNumberOfFlowTags[0]; } void SetEventNSelTracksPOI(Int_t np) { fNumberOfFlowTags[0] = np; } Int_t GetNumberOfRPs() const { return fNumberOfFlowTags[0]; } void SetNumberOfRPs( Int_t nr ) { fNumberOfFlowTags[0]=nr; } Int_t GetNumberOfPOIs(Int_t i=1) const { return (i collection of tracks Int_t fReferenceMultiplicity; // reference multiplicity Int_t fNumberOfTracks; // number of tracks Bool_t fUseGlauberMCSymmetryPlanes;// Use symmetry planes (Glauber MC) Bool_t fUseExternalSymmetryPlanes; // Use symmetry planes (external) Double_t fPsi1; // Psi_1 Double_t fPsi2; // Psi_2 Double_t fPsi3; // Psi_3 Double_t fPsi4; // Psi_4 Double_t fPsi5; // Psi_5 TF1* fPsi1Psi3; // Correlation between Psi_1 and Psi_3 TF1* fPsi2Psi4; // Correlation between Psi_2 and Psi_4 TF1* fPsi3Psi5; // Correlation between Psi_3 and Psi_5 Double_t fMCReactionPlaneAngle; // the angle of the reaction plane from the MC truth Bool_t fMCReactionPlaneAngleIsSet; // did we set it from MC? Double_t fAfterBurnerPrecision; // iteration precision in afterburner Bool_t fUserModified; // did we modify the event in any way (afterburner etc) ? TParameter* fNumberOfTracksWrap; //! number of tracks in TBrowser TParameter* fNumberOfRPsWrap; //! number of tracks that have passed the RP selection in TBrowser TParameter* fNumberOfFlowTagsWrap; //! number of tracks that have passed the POI selection in TBrowser TParameter* fMCReactionPlaneAngleWrap; //! the angle of the reaction plane from the MC truth in TBrowser Int_t* fShuffledIndexes; //! placeholder for randomized indexes Bool_t fShuffleTracks; // do we shuffle tracks on get? TObjArray* fMothersCollection; //!cache the particles with daughters Double_t fCentrality; //centrality private: Int_t fNumberOfFlowTagClasses; // how many different flow particle types do we have? (RP,POI,POI_2,...) Int_t* fNumberOfFlowTags; //[fNumberOfFlowTagClasses] number of tracks that have passed the POI selection ClassDef(AliFlowEventSimple,1) }; #endif