#ifndef ALIEMCAL_H
#define ALIEMCAL_H
class TString ;
class TFolder ;
class TRandom ;
class TGraph;
class TF1;
class AliRawReader;
#include "AliDetector.h"
#include "AliEMCALGeometry.h"
#include "AliEMCALTrigger.h"
class AliEMCALRawUtils;
#include "AliReconstructor.h"
class AliEMCALTriggerData;
class AliEMCAL : public AliDetector {
public:
AliEMCAL();
AliEMCAL(const char* name, const char* title="", const Bool_t checkGeoAndRun = kTRUE);
virtual ~AliEMCAL() ;
virtual void AddHit(Int_t, Int_t*, Float_t *) {
Fatal("AddHit(Int_t, Int_t*, Float_t *", "not to be used: use AddHit( Int_t shunt, Int_t primary, Int_t track,Int_t id, Float_t *hits )") ;
}
virtual AliDigitizer* CreateDigitizer(AliDigitizationInput* digInput) const;
virtual void CreateMaterials() ;
virtual void Init() ;
virtual void Digits2Raw();
virtual void FinishRun() {}
virtual AliEMCALGeometry * GetGeometry() const ;
virtual void Hits2SDigits();
virtual Int_t IsVersion(void) const = 0 ;
virtual AliTriggerDetector* CreateTriggerDetector() const
{ return new AliEMCALTrigger(); }
virtual AliLoader* MakeLoader(const char* topfoldername);
virtual const TString Version() const {return TString(" ") ; }
virtual void SetCheckRunNumberAndGeoVersion(Bool_t check) { fCheckRunNumberAndGeoVersion = check ; }
Bool_t Raw2SDigits(AliRawReader* rawReader);
protected:
void InitConstants();
Int_t fBirkC0;
Double_t fBirkC1;
Double_t fBirkC2;
AliEMCALGeometry* fGeometry;
Bool_t fCheckRunNumberAndGeoVersion;
static AliEMCALRawUtils * fgRawUtils;
AliEMCALTriggerData * fTriggerData;
private:
AliEMCAL(const AliEMCAL& emcal);
AliEMCAL & operator = (const AliEMCAL & );
ClassDef(AliEMCAL,12)
} ;
#endif // ALIEMCAL_H