]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG4/GammaConv/AliConversionAODBGHandlerRP.h
changes from gsi svn
[u/mrichter/AliRoot.git] / PWG4 / GammaConv / AliConversionAODBGHandlerRP.h
1 #ifndef __ALICONVERSIONAODBGHANDLERRP_H__
2 #define __ALICONVERSIONAODBGHANDLERRP_H__
3
4 #include "AliLog.h"
5 #include "TObject.h"
6 #include "AliAODConversionPhoton.h"
7 #include "TClonesArray.h"
8 using namespace std;
9
10 typedef vector<AliAODConversionPhoton*> AliGammaConversionPhotonVector;
11
12 class AliConversionAODBGHandlerRP: public TObject{
13
14 public:
15
16     AliConversionAODBGHandlerRP();
17     AliConversionAODBGHandlerRP(Int_t NEvents,Int_t NBinsZ,Double_t *BinLimitsZ,Int_t NBinsCentrality,Double_t *BinLimitsCentrality,Int_t NBinsRP);
18
19     
20 virtual ~AliConversionAODBGHandlerRP();
21
22
23 Int_t GetZBinIndex(Double_t z) const;
24 Int_t GetCentralityBinIndex(Int_t mult) const;
25 Int_t GetRPBinIndex(Double_t psi) const;
26 void Initialize();
27
28 typedef vector<AliGammaConversionPhotonVector> AliGammaConversionBGEventVector;       // Event contains vector of gammas (AliConversionPhotons)
29 typedef vector<AliGammaConversionBGEventVector> AliGammaConversionCentralityVector;  // Centrality classes containing event vectors
30 typedef vector<AliGammaConversionCentralityVector> AliGammaConversionVertexPositionVector;       // z vertex position ...
31 typedef vector<AliGammaConversionVertexPositionVector> AliGammaConversionBGVector;       // RP angle
32
33
34 AliGammaConversionPhotonVector* GetBGGoodGammas(Int_t psi,Int_t zbin, Int_t mbin, Int_t event);
35 void AddEvent(TClonesArray * const eventGammas, Double_t psi,Double_t zvalue, Int_t multiplicity);
36 Int_t GetNBGEvents()const {return fNEvents;} // Size of the Pool (20)
37 Int_t GetNBGEvents(Int_t psi,Int_t z,Int_t m)const{if(z<fNBinsZ&&m<fNBinsCentrality){return fNBGEvents[psi][z][m];}else{AliError(Form("Requested BG pool does not exist:  z %i m %i psi %i",z,m,psi));return 0;}};
38 Int_t GetNZBins()const{return fNBinsZ;};
39 Int_t GetNRPBins()const{return fNBinsRP;};
40 Int_t GetNCentralityBins()const{return fNBinsCentrality;};
41
42 private:
43
44  Int_t fNEvents; 
45  Int_t *** fBGEventCounter; //! bg counter
46  Int_t *** fNBGEvents;
47  Int_t fNBinsZ; //n z bins
48  Int_t fNBinsCentrality; //n bins multiplicity
49  Int_t fNBinsRP;
50  Double_t *fBinLimitsArrayZ;//! bin limits z array
51  Double_t *fBinLimitsArrayCentrality;//! bin limit multiplicity array
52  Double_t *fBinLimitsArrayRP;
53  AliGammaConversionBGVector fBGEvents; //background events
54
55
56  ClassDef(AliConversionAODBGHandlerRP,0);
57
58 };
59 #endif