#ifndef ALIGAMMACONVERSIONAODBGHANDLER_H
#define ALIGAMMACONVERSIONAODBGHANDLER_H
#include <vector>
#include <TObject.h>
#include "AliKFParticle.h"
#include "AliAODConversionPhoton.h"
#include "AliAODConversionMother.h"
#include "TClonesArray.h"
#include "AliESDVertex.h"
#if __GNUC__ >= 3
using namespace std;
#endif
typedef vector<AliAODConversionPhoton*> AliGammaConversionAODVector;
typedef vector<AliAODConversionMother*> AliGammaConversionMotherAODVector;
class AliGammaConversionAODBGHandler : public TObject {
public:
struct GammaConversionVertex{
Double_t fX;
Double_t fY;
Double_t fZ;
Double_t fEP;
};
typedef struct GammaConversionVertex GammaConversionVertex;
typedef vector<AliGammaConversionAODVector> AliGammaConversionBGEventVector;
typedef vector<AliGammaConversionBGEventVector> AliGammaConversionMultipicityVector;
typedef vector<AliGammaConversionMultipicityVector> AliGammaConversionBGVector;
typedef vector<AliGammaConversionMotherAODVector> AliGammaConversionMotherBGEventVector;
typedef vector<AliGammaConversionMotherBGEventVector> AliGammaConversionMotherMultipicityVector;
typedef vector<AliGammaConversionMotherMultipicityVector> AliGammaConversionMotherBGVector;
AliGammaConversionAODBGHandler();
AliGammaConversionAODBGHandler(UInt_t binsZ,UInt_t binsMultiplicity,UInt_t nEvents);
AliGammaConversionAODBGHandler(UInt_t collisionSystem,UInt_t centMin,UInt_t centMax,UInt_t nEvents, Bool_t useTrackMult, UInt_t mode,UInt_t binsZ, UInt_t binsMultiplicity);
AliGammaConversionAODBGHandler(const AliGammaConversionAODBGHandler & g);
AliGammaConversionAODBGHandler & operator = (const AliGammaConversionAODBGHandler & g);
virtual ~AliGammaConversionAODBGHandler();
void Initialize(Double_t * const zBinLimitsArray, Double_t * const multiplicityBinLimitsArray);
Int_t GetZBinIndex(Double_t z) const;
Int_t GetMultiplicityBinIndex(Int_t mult) const;
void AddEvent(TList* const eventGammas, Double_t xvalue,Double_t yvalue,Double_t zvalue, Int_t multiplicity, Double_t epvalue = -100);
void AddMesonEvent(TList* const eventMothers, Double_t xvalue,Double_t yvalue,Double_t zvalue, Int_t multiplicity, Double_t epvalue = -100);
void AddElectronEvent(TClonesArray* const eventENeg, Double_t zvalue, Int_t multiplicity);
Int_t GetNBGEvents()const {return fNEvents;}
AliGammaConversionAODVector* GetBGGoodV0s(Int_t zbin, Int_t mbin, Int_t event);
AliGammaConversionMotherAODVector* GetBGGoodMesons(Int_t zbin, Int_t mbin, Int_t event);
AliGammaConversionAODVector* GetBGGoodENeg(Int_t event, Double_t zvalue, Int_t multiplicity);
void PrintBGArray();
GammaConversionVertex * GetBGEventVertex(Int_t zbin, Int_t mbin, Int_t event){return &fBGEventVertex[zbin][mbin][event];}
Double_t GetBGProb(Int_t z, Int_t m){return fBGProbability[z][m];}
private:
Int_t fNEvents;
Int_t ** fBGEventCounter;
Int_t ** fBGEventENegCounter;
Int_t ** fBGEventMesonCounter;
Double_t ** fBGProbability;
GammaConversionVertex *** fBGEventVertex;
Int_t fNBinsZ;
Int_t fNBinsMultiplicity;
Double_t * fBinLimitsArrayZ;
Double_t * fBinLimitsArrayMultiplicity;
AliGammaConversionBGVector fBGEvents;
AliGammaConversionBGVector fBGEventsENeg;
AliGammaConversionMotherBGVector fBGEventsMeson;
ClassDef(AliGammaConversionAODBGHandler,5)
};
#endif
AliGammaConversionAODBGHandler.h:1 AliGammaConversionAODBGHandler.h:2 AliGammaConversionAODBGHandler.h:3 AliGammaConversionAODBGHandler.h:4 AliGammaConversionAODBGHandler.h:5 AliGammaConversionAODBGHandler.h:6 AliGammaConversionAODBGHandler.h:7 AliGammaConversionAODBGHandler.h:8 AliGammaConversionAODBGHandler.h:9 AliGammaConversionAODBGHandler.h:10 AliGammaConversionAODBGHandler.h:11 AliGammaConversionAODBGHandler.h:12 AliGammaConversionAODBGHandler.h:13 AliGammaConversionAODBGHandler.h:14 AliGammaConversionAODBGHandler.h:15 AliGammaConversionAODBGHandler.h:16 AliGammaConversionAODBGHandler.h:17 AliGammaConversionAODBGHandler.h:18 AliGammaConversionAODBGHandler.h:19 AliGammaConversionAODBGHandler.h:20 AliGammaConversionAODBGHandler.h:21 AliGammaConversionAODBGHandler.h:22 AliGammaConversionAODBGHandler.h:23 AliGammaConversionAODBGHandler.h:24 AliGammaConversionAODBGHandler.h:25 AliGammaConversionAODBGHandler.h:26 AliGammaConversionAODBGHandler.h:27 AliGammaConversionAODBGHandler.h:28 AliGammaConversionAODBGHandler.h:29 AliGammaConversionAODBGHandler.h:30 AliGammaConversionAODBGHandler.h:31 AliGammaConversionAODBGHandler.h:32 AliGammaConversionAODBGHandler.h:33 AliGammaConversionAODBGHandler.h:34 AliGammaConversionAODBGHandler.h:35 AliGammaConversionAODBGHandler.h:36 AliGammaConversionAODBGHandler.h:37 AliGammaConversionAODBGHandler.h:38 AliGammaConversionAODBGHandler.h:39 AliGammaConversionAODBGHandler.h:40 AliGammaConversionAODBGHandler.h:41 AliGammaConversionAODBGHandler.h:42 AliGammaConversionAODBGHandler.h:43 AliGammaConversionAODBGHandler.h:44 AliGammaConversionAODBGHandler.h:45 AliGammaConversionAODBGHandler.h:46 AliGammaConversionAODBGHandler.h:47 AliGammaConversionAODBGHandler.h:48 AliGammaConversionAODBGHandler.h:49 AliGammaConversionAODBGHandler.h:50 AliGammaConversionAODBGHandler.h:51 AliGammaConversionAODBGHandler.h:52 AliGammaConversionAODBGHandler.h:53 AliGammaConversionAODBGHandler.h:54 AliGammaConversionAODBGHandler.h:55 AliGammaConversionAODBGHandler.h:56 AliGammaConversionAODBGHandler.h:57 AliGammaConversionAODBGHandler.h:58 AliGammaConversionAODBGHandler.h:59 AliGammaConversionAODBGHandler.h:60 AliGammaConversionAODBGHandler.h:61 AliGammaConversionAODBGHandler.h:62 AliGammaConversionAODBGHandler.h:63 AliGammaConversionAODBGHandler.h:64 AliGammaConversionAODBGHandler.h:65 AliGammaConversionAODBGHandler.h:66 AliGammaConversionAODBGHandler.h:67 AliGammaConversionAODBGHandler.h:68 AliGammaConversionAODBGHandler.h:69 AliGammaConversionAODBGHandler.h:70 AliGammaConversionAODBGHandler.h:71 AliGammaConversionAODBGHandler.h:72 AliGammaConversionAODBGHandler.h:73 AliGammaConversionAODBGHandler.h:74 AliGammaConversionAODBGHandler.h:75 AliGammaConversionAODBGHandler.h:76 AliGammaConversionAODBGHandler.h:77 AliGammaConversionAODBGHandler.h:78 AliGammaConversionAODBGHandler.h:79 AliGammaConversionAODBGHandler.h:80 AliGammaConversionAODBGHandler.h:81 AliGammaConversionAODBGHandler.h:82 AliGammaConversionAODBGHandler.h:83 AliGammaConversionAODBGHandler.h:84 AliGammaConversionAODBGHandler.h:85 AliGammaConversionAODBGHandler.h:86 AliGammaConversionAODBGHandler.h:87 AliGammaConversionAODBGHandler.h:88 AliGammaConversionAODBGHandler.h:89 AliGammaConversionAODBGHandler.h:90 AliGammaConversionAODBGHandler.h:91 AliGammaConversionAODBGHandler.h:92 AliGammaConversionAODBGHandler.h:93 AliGammaConversionAODBGHandler.h:94 AliGammaConversionAODBGHandler.h:95 AliGammaConversionAODBGHandler.h:96 AliGammaConversionAODBGHandler.h:97 AliGammaConversionAODBGHandler.h:98 AliGammaConversionAODBGHandler.h:99 AliGammaConversionAODBGHandler.h:100 AliGammaConversionAODBGHandler.h:101