ROOT logo
#ifndef __ALICONVERSIONAODBGHANDLERRP_H__
#define __ALICONVERSIONAODBGHANDLERRP_H__

#include "AliLog.h"
#include "TObject.h"
#include "AliAODConversionPhoton.h"
#include "TObjArray.h"
#include "TList.h"
using namespace std;

typedef vector<AliAODConversionPhoton*> AliGammaConversionPhotonVector;   				// Vector containing photons
typedef vector<AliGammaConversionPhotonVector> AliGammaConversionBGEventVector;			// Event contains vector of gammas (AliConversionPhotons)
typedef vector<AliGammaConversionBGEventVector> AliGammaConversionMultiplicityVector;	// Multiplicity classes containing event vectors
typedef vector<AliGammaConversionMultiplicityVector> AliGammaConversionBGVector;		// z vertex position ...


class AliConversionAODBGHandlerRP: public TObject{

	public:

		AliConversionAODBGHandlerRP(Bool_t IsHeavyIon=kFALSE,Bool_t UseChargedTrackMult=kTRUE,Int_t NEvents=10);
		
		virtual ~AliConversionAODBGHandlerRP();

		Int_t GetZBinIndex(Double_t z) const;
		Int_t GetMultiplicityBinIndex(Int_t mult) const;
		void Initialize();
		Bool_t FindBins(TObjArray * const eventGammas,AliVEvent *fInputEvent,Int_t &zbin,Int_t &mbin);
		Bool_t FindBins(TList * const eventGammas,AliVEvent *fInputEvent,Int_t &zbin,Int_t &mbin);

	
		AliGammaConversionPhotonVector* GetBGGoodGammas(TObjArray * const eventGammas,AliVEvent *fInputEvent,Int_t event);
		AliGammaConversionPhotonVector* GetBGGoodGammas(TList * const eventGammas,AliVEvent *fInputEvent,Int_t event);
		void AddEvent(TObjArray * const eventGammas,AliVEvent *fInputEvent);
		void AddEvent(TList * const eventGammas,AliVEvent *fInputEvent);
		Int_t GetNBGEvents()const {return fNEvents;} // Size of the Pool (20)
		Int_t GetNBGEvents(TObjArray * const eventGammas,AliVEvent *fInputEvent);
		Int_t GetNBGEvents(TList * const eventGammas,AliVEvent *fInputEvent);
		Int_t GetNZBins()const{return fNBinsZ;};
		Int_t GetNMultiplicityBins()const{return fNBinsMultiplicity;};

	private:
		Bool_t fIsHeavyIon;
		Bool_t fUseChargedTrackMult;
		Int_t fNEvents;
		Int_t **fBGEventCounter; //! bg counter
		Int_t **fNBGEvents;
		Int_t fNBinsZ; //n z bins
		Int_t fNBinsMultiplicity; //n bins multiplicity
		Double_t *fBinLimitsArrayZ;//! bin limits z array
		Double_t *fBinLimitsArrayMultiplicity;//! bin limit multiplicity array
		AliGammaConversionBGVector fBGPool; //background events

		AliConversionAODBGHandlerRP(AliConversionAODBGHandlerRP &original);
		AliConversionAODBGHandlerRP &operator=(const AliConversionAODBGHandlerRP &ref);

	ClassDef(AliConversionAODBGHandlerRP,0);

};
#endif
 AliConversionAODBGHandlerRP.h:1
 AliConversionAODBGHandlerRP.h:2
 AliConversionAODBGHandlerRP.h:3
 AliConversionAODBGHandlerRP.h:4
 AliConversionAODBGHandlerRP.h:5
 AliConversionAODBGHandlerRP.h:6
 AliConversionAODBGHandlerRP.h:7
 AliConversionAODBGHandlerRP.h:8
 AliConversionAODBGHandlerRP.h:9
 AliConversionAODBGHandlerRP.h:10
 AliConversionAODBGHandlerRP.h:11
 AliConversionAODBGHandlerRP.h:12
 AliConversionAODBGHandlerRP.h:13
 AliConversionAODBGHandlerRP.h:14
 AliConversionAODBGHandlerRP.h:15
 AliConversionAODBGHandlerRP.h:16
 AliConversionAODBGHandlerRP.h:17
 AliConversionAODBGHandlerRP.h:18
 AliConversionAODBGHandlerRP.h:19
 AliConversionAODBGHandlerRP.h:20
 AliConversionAODBGHandlerRP.h:21
 AliConversionAODBGHandlerRP.h:22
 AliConversionAODBGHandlerRP.h:23
 AliConversionAODBGHandlerRP.h:24
 AliConversionAODBGHandlerRP.h:25
 AliConversionAODBGHandlerRP.h:26
 AliConversionAODBGHandlerRP.h:27
 AliConversionAODBGHandlerRP.h:28
 AliConversionAODBGHandlerRP.h:29
 AliConversionAODBGHandlerRP.h:30
 AliConversionAODBGHandlerRP.h:31
 AliConversionAODBGHandlerRP.h:32
 AliConversionAODBGHandlerRP.h:33
 AliConversionAODBGHandlerRP.h:34
 AliConversionAODBGHandlerRP.h:35
 AliConversionAODBGHandlerRP.h:36
 AliConversionAODBGHandlerRP.h:37
 AliConversionAODBGHandlerRP.h:38
 AliConversionAODBGHandlerRP.h:39
 AliConversionAODBGHandlerRP.h:40
 AliConversionAODBGHandlerRP.h:41
 AliConversionAODBGHandlerRP.h:42
 AliConversionAODBGHandlerRP.h:43
 AliConversionAODBGHandlerRP.h:44
 AliConversionAODBGHandlerRP.h:45
 AliConversionAODBGHandlerRP.h:46
 AliConversionAODBGHandlerRP.h:47
 AliConversionAODBGHandlerRP.h:48
 AliConversionAODBGHandlerRP.h:49
 AliConversionAODBGHandlerRP.h:50
 AliConversionAODBGHandlerRP.h:51
 AliConversionAODBGHandlerRP.h:52
 AliConversionAODBGHandlerRP.h:53
 AliConversionAODBGHandlerRP.h:54
 AliConversionAODBGHandlerRP.h:55
 AliConversionAODBGHandlerRP.h:56
 AliConversionAODBGHandlerRP.h:57
 AliConversionAODBGHandlerRP.h:58
 AliConversionAODBGHandlerRP.h:59
 AliConversionAODBGHandlerRP.h:60