3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice
8 //_________________________________________________________________________
9 // Implementation version v0 of EMCAL Manager class
11 //*-- Author: Yves Schutz (SUBATECH)
12 //*-- and : Sahal Yacoob (LBL / UCT)
13 // : Aleksei Pavlinov (WSU) SHASHLYK
16 // --- ROOT system ---
21 class AliEMCALShishKebabTrd1Module;
23 // --- AliRoot header files ---
26 //class AliEMCALGeometry ;
28 class AliEMCALv0 : public AliEMCAL {
32 AliEMCALv0():AliEMCAL() {}
33 AliEMCALv0(const char *name, const char *title="") ;
34 AliEMCALv0(const AliEMCALv0 & emcal):AliEMCAL(emcal) {
35 // cpy ctor: no implementation yet
36 // requested by the Coding Convention
37 Fatal("cpy ctor", "not implemented") ;
39 virtual ~AliEMCALv0(){}
41 virtual void BuildGeometry();// creates the geometry for the ROOT display
42 TNode *BuildGeometryOfWSUC(); // WSUC - test environment
43 virtual void CreateGeometry() ;// creates the geometry for GEANT
44 virtual void Init(void) ; // does nothing
45 virtual Int_t IsVersion(void) const {
46 // Gives the version number
49 virtual const TString Version(void) const{
51 return TString("v0") ;
54 AliEMCALv0 & operator = (const AliEMCALv0 & /*rvalue*/) {
55 // assignement operator requested by coding convention but not needed
56 Fatal("operator =", "not implemented") ;
60 void CreateShishKebabGeometry();
61 void CreateSmod(const char* mother="XEN1");
62 void CreateEmod(const char* mother="SMOD", const char* child="EMOD");
64 void Trd1Tower3X3(const double parSCM0[5]);
66 void PbInTrap(const double parTRAP[11], TString n);
68 void Scm0InTrd2(const AliEMCALGeometry * g, const Double_t parEMOD[5], Double_t parSCM0[5]);
69 void Division2X2InScm0(const AliEMCALGeometry * g, const Double_t parSCM0[5]);
70 void PbInTrapForTrd2(const double *parTRAP, TString name);
72 void PbmoInTrd2(const AliEMCALGeometry * g, const Double_t parEMOD[5], Double_t parPBMO[5]);
73 void Division2X2InPbmo(const AliEMCALGeometry * g, const Double_t parPBMO[5]);
75 TList *GetShishKebabModules() {return fShishKebabModules;}
76 AliEMCALShishKebabTrd1Module *GetShishKebabModule(const Int_t neta=0);
78 TList *fShishKebabModules; //! list of modules for twist geometries
82 ClassDef(AliEMCALv0,3) // Implementation of EMCAL manager class for midrapidity barrel layout between 80 and 180(190) degrees
86 #endif // AliEMCALV0_H