1 //////////////////////////////////////////////////////////////////////
5 // Author: Emanuele Simili
7 //////////////////////////////////////////////////////////////////////
9 // Description: parser class from AliESD to AliFlowEvent .
10 // Nothing else to say at this point, but 3 lines of comments must be
11 // there (at least) to make the code checker happy. I hope now is ok!
13 //////////////////////////////////////////////////////////////////////
15 #ifndef ALIFLOWMAKER_H
16 #define ALIFLOWMAKER_H
33 virtual ~AliFlowMaker();
35 // FLOW SPECIFIC METHODS (to fill the flowEvents)
36 AliFlowEvent* FillFlowEvent(AliESD* fESD) ; // fills up evt quantities
37 AliFlowTrack* FillFlowTrack(AliESDtrack* fTrack) ; // fills up track quantities (global & constrained) ; p.id. & bayesian calculation ;
38 AliFlowV0* FillFlowV0(AliESDv0* fV0) ; // fills up v0 quantities ; links v0 to tracks and back ;
41 Double_t Norm(Double_t nu[3]) ; // norm of a non-vector 3 array
42 Double_t Phi(Double_t nu[3]) ; // phi of a non-vector 3 array
43 Double_t Pt(Double_t nu[3]) ; // pt of a non-vector 3 array
44 Double_t Eta(Double_t nu[3]) ; // eta of a non-vector 3 array
47 Bool_t CheckTrack(AliESDtrack* fTrack) const ; // checks track (applies track cuts)
48 Bool_t CheckV0(AliESDv0* fV0) const ; // checks v0 (dummy)
49 Bool_t CheckEvent(AliESD* fESD) const ; // checks event (dummy)
50 void PrintCutList() ; // prints the list of cuts
51 void SetNHitsCut(Int_t nHits) { fNHits = nHits ; } // exclude tracks with less than .. TPC hits
52 void SetECut(Float_t eLow, Float_t eUp) { fElow = eLow ; fEup = eUp ; } // exclude tracks below and above .. GeV
53 void SetLabelCut(Int_t labLo, Int_t labHi) { fLabel[0] = labLo ; fLabel[1] = labHi ; } // exclude tracks outside label interval
56 Int_t GetNgoodTracks() const { return fGoodTracks ; }
57 Int_t GetNgoodV0s() const { return fGoodV0s ; }
58 Int_t GetNgoodTracksEta() const { return fGoodTracksEta ; }
59 Int_t GetNposiTracks() const { return fPosiTracks ; }
60 Int_t GetNnegaTracks() const { return fNegaTracks ; }
61 Int_t GetNunconstrained() const { return fUnconstrained ; }
62 Int_t GetBayesian(Int_t i = 2) const { return fBayesianAll[i] ; }
63 Float_t GetBayesianNorm(Int_t i = 2) const { return (Float_t)fBayesianAll[i] / (Float_t)fSumAll ; }
68 Int_t fEventNumber ; //! progressive enumeration of ESD events
69 Int_t fTrackNumber ; //! progressive enumeration of ESD tracks
70 Int_t fV0Number ; //! progressive enumeration of ESD V0
72 Int_t fGoodTracks ; //! enumerator for good tracks
73 Int_t fGoodV0s ; //! enumerator for good v0s
74 Int_t fGoodTracksEta ; //! enumerator for good tracks in the good eta range (-0.9..0.9)
75 Int_t fPosiTracks ; //! enumerator for positive tracks
76 Int_t fNegaTracks ; //! enumerator for negative tracks
77 Int_t fUnconstrained ; //! enumerator for tracks not constrainable
78 Int_t fBayesianAll[5] ; //! final particles abundance -> AliFlowEvent (see Bayesian P.Id.)
79 Int_t fSumAll ; //! total particles abundance (all kind)
81 Int_t fCutEvts ; //! total enumerator for discarded events
82 Int_t fCutTrks ; //! total enumerator for discarded tracks
83 Int_t fCutV0s ; //! total enumerator for discarded V0s
86 Bool_t fNewAli ; //! enables the new ESD features (since AliRoot 12/2006)
87 Bool_t fLoopTrks ; //! flag to loop over tracks
88 Bool_t fLoopV0s ; //! flag to loop over v0s
90 Int_t fCounter ; //! number of processed events
94 // to make the code checker happy
95 AliFlowMaker(const AliFlowMaker &flowMak) ; // Copy Constructor (dummy)
96 AliFlowMaker &operator=(const AliFlowMaker &flowMak) ; // Assignment Operator (dummy)
99 AliESD* fESD; //! "ESD event"
100 AliESDtrack* fTrack; //! "ESD track"
101 AliESDv0* fV0; //! "ESD v0"
102 AliESDVertex* fVertex; //! "ESD primary vertex"
104 Int_t fRunID; //! last run ID
105 Int_t fNumberOfEvents ; //! total number of ESD events in file
106 Int_t fNumberOfTracks ; //! total number of tracks in the current event
107 Int_t fNumberOfV0s ; //! total number of v0s in the current event
108 Float_t fMagField ; //! magnetic field from the ESD
111 AliFlowEvent* fFlowEvent ; //! pointer to flow event
112 AliFlowTrack* fFlowTrack; //! pointer to flow track
113 AliFlowV0* fFlowV0; //! pointer to flow V0
116 Int_t fNHits; // exclude tracks with less than .. TPC hits
117 Float_t fElow ; // exclude tracks below .. GeV (~total Momentum)
118 Float_t fEup ; // exclude tracks above .. GeV (~total Momentum)
119 Int_t fLabel[2] ; // exclude tracks outside label interval
121 ClassDef(AliFlowMaker,0);