2 #ifndef ALIGAMMACONVERSIONAODBGHANDLER_H
3 #define ALIGAMMACONVERSIONAODBGHANDLER_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
7 ////////////////////////////////////////////////
8 //---------------------------------------------
9 // Class for handling of background calculation
10 //---------------------------------------------
11 ////////////////////////////////////////////////
16 // --- ROOT system ---
18 #include "AliKFParticle.h"
19 #include "AliAODConversionPhoton.h"
20 #include "AliAODConversionMother.h"
21 #include "TClonesArray.h"
22 #include "AliESDVertex.h"
28 typedef vector<AliAODConversionPhoton*> AliGammaConversionAODVector;
30 class AliGammaConversionAODBGHandler : public TObject {
33 struct GammaConversionVertex
40 typedef struct GammaConversionVertex GammaConversionVertex; //!
42 typedef vector<AliGammaConversionAODVector> AliGammaConversionBGEventVector;
43 typedef vector<AliGammaConversionBGEventVector> AliGammaConversionMultipicityVector;
44 typedef vector<AliGammaConversionMultipicityVector> AliGammaConversionBGVector;
46 AliGammaConversionAODBGHandler(); //constructor
47 AliGammaConversionAODBGHandler(UInt_t binsZ,UInt_t binsMultiplicity,UInt_t nEvents); // constructor
48 AliGammaConversionAODBGHandler(UInt_t collisionSystem,UInt_t centMin,UInt_t centMax,UInt_t nEvents, Bool_t useTrackMult);
49 AliGammaConversionAODBGHandler(const AliGammaConversionAODBGHandler & g); //copy constructor
50 AliGammaConversionAODBGHandler & operator = (const AliGammaConversionAODBGHandler & g); //assignment operator
51 virtual ~AliGammaConversionAODBGHandler(); //virtual destructor
53 void Initialize(Double_t * const zBinLimitsArray, Double_t * const multiplicityBinLimitsArray);
55 Int_t GetZBinIndex(Double_t z) const;
57 Int_t GetMultiplicityBinIndex(Int_t mult) const;
59 void AddEvent(TList* const eventGammas, Double_t xvalue,Double_t yvalue,Double_t zvalue, Int_t multiplicity, Double_t epvalue = -100);
60 void AddElectronEvent(TClonesArray* const eventENeg, Double_t zvalue, Int_t multiplicity);
62 Int_t GetNBGEvents()const {return fNEvents;}
64 AliGammaConversionAODVector* GetBGGoodV0s(Int_t zbin, Int_t mbin, Int_t event);
65 AliGammaConversionAODVector* GetBGGoodENeg(Int_t event, Double_t zvalue, Int_t multiplicity);
68 GammaConversionVertex * GetBGEventVertex(Int_t zbin, Int_t mbin, Int_t event){return &fBGEventVertex[zbin][mbin][event];}
70 Double_t GetBGProb(Int_t z, Int_t m){return fBGProbability[z][m];}
74 Int_t fNEvents; // number of events
75 Int_t ** fBGEventCounter; //! bg counter
76 Int_t ** fBGEventENegCounter;//! bg electron counter
77 Double_t ** fBGProbability; //! prob per bin
78 GammaConversionVertex *** fBGEventVertex;//! array of event vertex
79 Int_t fNBinsZ; //n z bins
80 Int_t fNBinsMultiplicity; //n bins multiplicity
81 Double_t *fBinLimitsArrayZ;//! bin limits z array
82 Double_t *fBinLimitsArrayMultiplicity;//! bin limit multiplicity array
83 AliGammaConversionBGVector fBGEvents; //background events
84 AliGammaConversionBGVector fBGEventsENeg; //background electron events
85 ClassDef(AliGammaConversionAODBGHandler,3)