2 #ifndef ALIGAMMACONVERSIONBGHANDLER_H
3 #define ALIGAMMACONVERSIONBGHANDLER_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 "TClonesArray.h"
20 #include "AliESDVertex.h"
26 typedef vector<AliKFParticle*> AliGammaConversionKFVector;
28 class AliGammaConversionBGHandler : public TObject {
31 struct GammaConversionVertex
37 typedef struct GammaConversionVertex GammaConversionVertex; //!
39 typedef vector<AliGammaConversionKFVector> AliGammaConversionBGEventVector;
40 typedef vector<AliGammaConversionBGEventVector> AliGammaConversionMultipicityVector;
41 typedef vector<AliGammaConversionMultipicityVector> AliGammaConversionBGVector;
43 AliGammaConversionBGHandler(); //constructor
44 AliGammaConversionBGHandler(UInt_t binsZ,UInt_t binsMultiplicity,UInt_t fNEvents); //constructor
45 AliGammaConversionBGHandler(const AliGammaConversionBGHandler & g); //copy constructor
46 AliGammaConversionBGHandler & operator = (const AliGammaConversionBGHandler & g); //assignment operator
47 virtual ~AliGammaConversionBGHandler(); //virtual destructor
49 void Initialize(Double_t * const zBinLimitsArray, Double_t * const multiplicityBinLimitsArray);
51 Int_t GetZBinIndex(Double_t z) const;
53 Int_t GetMultiplicityBinIndex(Int_t mult) const;
55 void AddEvent(TClonesArray * const eventGammas, Double_t xvalue,Double_t yvalue,Double_t zvalue, Int_t multiplicity);
56 void AddElectronEvent(TClonesArray* const eventENeg, Double_t zvalue, Int_t multiplicity);
58 Int_t GetNBGEvents()const {return fNEvents;}
60 AliGammaConversionKFVector* GetBGGoodV0s(Int_t zbin, Int_t mbin, Int_t event);
61 AliGammaConversionKFVector* GetBGGoodENeg(Int_t event, Double_t zvalue, Int_t multiplicity);
64 GammaConversionVertex * GetBGEventVertex(Int_t zbin, Int_t mbin, Int_t event){return &fBGEventVertex[zbin][mbin][event];}
66 Double_t GetBGProb(Int_t z, Int_t m){return fBGProbability[z][m];}
70 Int_t fNEvents; // number of events
71 Int_t ** fBGEventCounter; //! bg counter
72 Int_t ** fBGEventENegCounter;//! bg electron counter
73 Double_t ** fBGProbability; //! prob per bin
74 GammaConversionVertex *** fBGEventVertex;//! array of event vertex
75 Int_t fNBinsZ; //n z bins
76 Int_t fNBinsMultiplicity; //n bins multiplicity
77 Double_t *fBinLimitsArrayZ;//! bin limits z array
78 Double_t *fBinLimitsArrayMultiplicity;//! bin limit multiplicity array
79 AliGammaConversionBGVector fBGEvents; //gackground events
80 AliGammaConversionBGVector fBGEventsENeg; //background electron events
81 ClassDef(AliGammaConversionBGHandler,2)