X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=EMCAL%2FAliEMCALv0.h;h=9e88763db4ea88842eb5d64a91b67d91459c5932;hb=6951a056eecd2989486e4738d9761d4be899be43;hp=5a06776c3f1bc0f1d5e3becdfa47457a4039f14c;hpb=05a92d59aeb65ac1e2f05b1c0600345cea26698b;p=u%2Fmrichter%2FAliRoot.git diff --git a/EMCAL/AliEMCALv0.h b/EMCAL/AliEMCALv0.h index 5a06776c3f1..9e88763db4e 100644 --- a/EMCAL/AliEMCALv0.h +++ b/EMCAL/AliEMCALv0.h @@ -7,40 +7,40 @@ //_________________________________________________________________________ // Implementation version v0 of EMCAL Manager class -//*-- +// An object of this class does not produce hits nor digits +// It is the one to use if you do not want to produce outputs in TREEH or TREED +// This class places a Geometry of the EMCAL in the ALICE Detector as defined in AliEMCALGeometry.cxx //*-- Author: Yves Schutz (SUBATECH) //*-- and : Sahal Yacoob (LBL / UCT) -//#include +// : Aleksei Pavlinov (WSU) SHASHLYK // --- ROOT system --- class TFile; +class TList; +class AliEMCALShishKebabTrd1Module; +class AliEMCALSpaceFrame; // --- AliRoot header files --- #include "AliEMCAL.h" - -//class AliEMCALGeometry ; +#include "TGeoManager.h" +#include class AliEMCALv0 : public AliEMCAL { public: - AliEMCALv0():AliEMCAL() {} - AliEMCALv0(const char *name, const char *title="") ; - AliEMCALv0(const AliEMCALv0 & emcal) { - // cpy ctor: no implementation yet - // requested by the Coding Convention - abort() ; - } + AliEMCALv0(); + AliEMCALv0(const char *name, const char *title="",const Bool_t checkGeoAndRun = kTRUE) ; virtual ~AliEMCALv0(){} - virtual void AddHit( Int_t shunt, Int_t primary, Int_t track, - Int_t id, Float_t *hits ) { - // no hits - useless - } + using AliEMCAL::AddHit; - virtual void BuildGeometry();// creates the geometry for the ROOT display - virtual void CreateGeometry() ;// creates the geometry for GEANT + virtual void AddAlignableVolumes() const; + virtual void AddAlignableVolumesInALICE() const; + virtual void AddAlignableVolumesInWSUC() const; + + virtual void CreateGeometry() ;// creates the geometry for GEANT virtual void Init(void) ; // does nothing virtual Int_t IsVersion(void) const { // Gives the version number @@ -50,16 +50,46 @@ class AliEMCALv0 : public AliEMCAL { // As above return TString("v0") ; } - - AliEMCALv0 & operator = (const AliEMCALv0 & rvalue) { - // assignement operator requested by coding convention but not needed - abort() ; - return *this ; - } - - protected: + // ShishKebab + void CreateShishKebabGeometry(); + void CreateSmod(const char* mother="XEN1"); + void CreateEmod(const char* mother="SMOD", const char* child="EMOD"); + void CreateAlFrontPlate(const char* mother="EMOD", const char* child="ALFP"); + // TRD1 + void Trd1Tower3X3(const double *parSCM0); + void Trd1Tower4X4() const; + void PbInTrap(const double parTRAP[11], TString n); + // 1X1 case - Nov 22, 2006 + void Trd1Tower1X1(double *parSCM0); + void PbInTrd1(const double *parTrd1, TString n); + // TRD2 - 1th design + void Scm0InTrd2(const AliEMCALGeometry * g, const Double_t emodPar[5], Double_t parSCM0[5]); + void Division2X2InScm0(const AliEMCALGeometry * g, const Double_t parSCM0[5]); + void PbInTrapForTrd2(const double *parTRAP, TString name); + // TRD2 - 2th design + void PbmoInTrd2(const AliEMCALGeometry * g, const Double_t emodPar[5], Double_t parPBMO[5]); + void Division2X2InPbmo(const AliEMCALGeometry * g, const Double_t parPBMO[5]); + + TList *GetShishKebabModules() const {return fShishKebabModules;} + AliEMCALShishKebabTrd1Module *GetShishKebabModule(Int_t neta=0); - ClassDef(AliEMCALv0,1) // Implementation of EMCAL manager class for midrapidity barrel layout between 0 and 120 degrees + protected: + TList *fShishKebabModules; //! list of modules + private: + TArrayF fEnvelop1; //! parameters of EMCAL envelop for TRD1(2) case + Int_t fIdRotm; //! number of rotation matrix (working variable) + Int_t *fIdTmedArr; //! fIdtmed->GetArray() - 1599; + Double_t fSampleWidth; //! sample width = double(g->GetECPbRadThick()+g->GetECScintThick()); + Double_t fSmodPar0; //! x size of super module + Double_t fSmodPar1; //! y size of super module + Double_t fSmodPar2; //! z size of super module + Double_t fParEMOD[5]; //! parameters of EMCAL module (TRD1,2) + AliEMCALSpaceFrame* fCalFrame; //EMCAL Space frame object + + AliEMCALv0(const AliEMCALv0 & emcal); + AliEMCALv0 & operator = (const AliEMCALv0 & /*rvalue*/); + + ClassDef(AliEMCALv0,4) // Implementation of EMCAL manager class for midrapidity barrel layout between 80 and 180(190) degrees };