#ifndef ALILRCBASE_H
#define ALILRCBASE_H
#include <TObject.h>
class TList;
class AliLRCBase: public TObject
{
public:
AliLRCBase(): TObject() {};
virtual ~AliLRCBase(){};
virtual Bool_t InitDataMembers() = 0;
virtual void SetOutputSlotNumber(Int_t SlotNumber) = 0;
virtual void GetETAWindows(Double_t &_StartForwardETA,Double_t &_EndForwardETA,Double_t &_StartBakwardETA,Double_t &_EndBakwardETA) = 0;
virtual void GetPhiWindows(Double_t &_StartForwardPhi,Double_t &_EndForwardPhi,Double_t &_StartBakwardPhi,Double_t &_EndBakwardPhi) = 0;
virtual TList* CreateOutput() const = 0 ;
virtual TString GetShortDef() const = 0 ;
virtual Int_t GetOutputSlotNumber() const = 0 ;
virtual void StartEvent() = 0;
virtual void FinishEvent(Bool_t kDontCount = kFALSE) = 0;
virtual void SetETAWindows( Double_t _StartForwardETA, Double_t _EndForwardETA, Double_t _StartBackwardETA, Double_t _EndBackwardETA ) = 0;
virtual void AddTrackPtEta( Double_t Pt, Double_t Eta, Double_t Phi, Short_t Charge = 100, Int_t particleType = -1 ) = 0;
virtual void AddTrackForward( Double_t Pt, Double_t Eta, Double_t Phi, Short_t Charge, Int_t particleType ) = 0;
virtual void AddTrackBackward( Double_t Pt, Double_t Eta, Double_t Phi, Short_t Charge, Int_t particleType ) = 0;
virtual void AddTrackPtEtaMixing( Int_t winFB, Double_t Pt, Double_t Eta ,Double_t Phi, Short_t Charge, Int_t particleType = -1 ) = 0;
virtual void SetEventCentrality(Double_t centrality) = 0;
virtual void SetEventPlane(Double_t eventPlane) = 0;
virtual void SetParticleType( char* strForwardOrBackward, char* strPid ) = 0;
virtual void SetForwardWindowPhi(Double_t StartForwardPhi,Double_t EndForwardPhi) = 0;
virtual void SetBackwardWindowPhi(Double_t StartBackwardPhi,Double_t EndBackwardPhi) = 0;
virtual void SetHistPtRange(Double_t LoPt,Double_t HiPt,Int_t PtBins) = 0;
virtual void Terminate() = 0;
private:
virtual void SetShortDef() =0;
AliLRCBase(const AliLRCBase&);
AliLRCBase& operator=(const AliLRCBase&);
ClassDef(AliLRCBase, 1);
};
#endif