ROOT logo
#ifndef AliConversionSelection_cxx
#define AliConversionSelection_cxx

#include "AliAODConversionMother.h"
#include "AliConversionPhotonBase.h"
#include "AliAODConversionPhoton.h"
#include "AliConversionAODBGHandlerRP.h"
#include "AliConvEventCuts.h"
#include "AliConversionPhotonCuts.h"
#include "AliConversionMesonCuts.h"
#include "TRandom3.h"
#include "AliVEvent.h"
#include "AliMCEvent.h"
#include "TClonesArray.h"
#include "AliESDtrackCuts.h"

class AliConversionSelection : public TObject{

public:

    AliConversionSelection(AliConvEventCuts *evtCut=NULL, AliConversionPhotonCuts *convCut=NULL, AliConversionMesonCuts *mesonCut=NULL);
    AliConversionSelection(TString evtCut, TString convCut, TString mesonCut);
    AliConversionSelection(const AliConversionSelection&);
    AliConversionSelection& operator=(const AliConversionSelection&); // not implemented

    virtual ~AliConversionSelection();

    // Main Functions
    Bool_t ProcessEvent(TClonesArray *photons,AliVEvent *inputEvent,AliMCEvent *mcEvent);
   
    // public getter functions
    Int_t GetNumberOfPi0s(){return fPi0Candidates->GetEntriesFast();}
    Int_t GetNumberOfBGs(){return fBGPi0s->GetEntriesFast();}
    Int_t GetNumberOfPhotons(){return fGoodGammas->GetEntriesFast();}

    Double_t GetMultiplicity(AliVEvent *inputEvent);

    AliAODConversionMother* GetPi0(Int_t index);
    AliAODConversionMother* GetBG(Int_t index);
    AliAODConversionPhoton* GetPhoton(Int_t index);

    TClonesArray *GetPi0Candidates(){return fPi0Candidates;}
    TClonesArray *GetBGPi0s(){return fBGPi0s;}

    // public Set Functions
    void SetInvMassRange(Double_t low,Double_t up){fInvMassRange[0]=low;fInvMassRange[1]=up;};
    void SetInvMassRange(Double_t range[2]){SetInvMassRange(range[0],range[1]);};

    Double_t* GetInvMassRange(){return fInvMassRange;}
    TObjArray *GetGoodGammas(){return fGoodGammas;}

    Int_t GetNumberOfChargedTracks(AliVEvent *inputEvent);
    Double_t GetSPDMult(AliVEvent *inputEvent);
    Double_t GetVZEROMult(AliVEvent *inputEvent);

    Int_t GetEventNumber(AliVEvent *inputEvent);

    TString GetCutString();

protected:
   
    void InitializeBGHandler();
    void CalculatePi0Candidates();
    void CalculateBackground();

    void RotateParticle(AliAODConversionPhoton *gamma,Int_t nDegreesPMBackground);

    Bool_t MesonInMassWindow(AliAODConversionMother *pi0cand);

    AliVEvent 					*fInputEvent;				//
    AliMCEvent 					*fMCEvent;					//
	AliConvEventCuts		 	*fEventCut;					//
    AliConversionPhotonCuts 	*fConversionCut;			//
    AliConversionMesonCuts 		*fMesonCut;					//
    AliESDtrackCuts 			*fESDTrackCuts;				//
    TObjArray 					*fGoodGammas; 				// Pointer to selected photons
    TClonesArray 				*fPi0Candidates;			//
    TClonesArray 				*fBGPi0s;					//
    TRandom3 					*fRandomizer; 				// Randomizer for Rotation
    AliConversionAODBGHandlerRP *fBGHandler;				//
    Double_t 					fInvMassRange[2];			//
    Int_t	 					fCurrentEventNumber; 		// Current Event Number
    Bool_t 						fIsOwner; 					// Cuts will be deleted when the destructor is called

    ClassDef(AliConversionSelection, 3); 					// example of analysis
};

#endif

 AliConversionSelection.h:1
 AliConversionSelection.h:2
 AliConversionSelection.h:3
 AliConversionSelection.h:4
 AliConversionSelection.h:5
 AliConversionSelection.h:6
 AliConversionSelection.h:7
 AliConversionSelection.h:8
 AliConversionSelection.h:9
 AliConversionSelection.h:10
 AliConversionSelection.h:11
 AliConversionSelection.h:12
 AliConversionSelection.h:13
 AliConversionSelection.h:14
 AliConversionSelection.h:15
 AliConversionSelection.h:16
 AliConversionSelection.h:17
 AliConversionSelection.h:18
 AliConversionSelection.h:19
 AliConversionSelection.h:20
 AliConversionSelection.h:21
 AliConversionSelection.h:22
 AliConversionSelection.h:23
 AliConversionSelection.h:24
 AliConversionSelection.h:25
 AliConversionSelection.h:26
 AliConversionSelection.h:27
 AliConversionSelection.h:28
 AliConversionSelection.h:29
 AliConversionSelection.h:30
 AliConversionSelection.h:31
 AliConversionSelection.h:32
 AliConversionSelection.h:33
 AliConversionSelection.h:34
 AliConversionSelection.h:35
 AliConversionSelection.h:36
 AliConversionSelection.h:37
 AliConversionSelection.h:38
 AliConversionSelection.h:39
 AliConversionSelection.h:40
 AliConversionSelection.h:41
 AliConversionSelection.h:42
 AliConversionSelection.h:43
 AliConversionSelection.h:44
 AliConversionSelection.h:45
 AliConversionSelection.h:46
 AliConversionSelection.h:47
 AliConversionSelection.h:48
 AliConversionSelection.h:49
 AliConversionSelection.h:50
 AliConversionSelection.h:51
 AliConversionSelection.h:52
 AliConversionSelection.h:53
 AliConversionSelection.h:54
 AliConversionSelection.h:55
 AliConversionSelection.h:56
 AliConversionSelection.h:57
 AliConversionSelection.h:58
 AliConversionSelection.h:59
 AliConversionSelection.h:60
 AliConversionSelection.h:61
 AliConversionSelection.h:62
 AliConversionSelection.h:63
 AliConversionSelection.h:64
 AliConversionSelection.h:65
 AliConversionSelection.h:66
 AliConversionSelection.h:67
 AliConversionSelection.h:68
 AliConversionSelection.h:69
 AliConversionSelection.h:70
 AliConversionSelection.h:71
 AliConversionSelection.h:72
 AliConversionSelection.h:73
 AliConversionSelection.h:74
 AliConversionSelection.h:75
 AliConversionSelection.h:76
 AliConversionSelection.h:77
 AliConversionSelection.h:78
 AliConversionSelection.h:79
 AliConversionSelection.h:80
 AliConversionSelection.h:81
 AliConversionSelection.h:82
 AliConversionSelection.h:83
 AliConversionSelection.h:84
 AliConversionSelection.h:85
 AliConversionSelection.h:86
 AliConversionSelection.h:87
 AliConversionSelection.h:88
 AliConversionSelection.h:89