7be482043619f3ced178bc6e315b760bc8b08094
[u/mrichter/AliRoot.git] / EMCAL / AliEMCALv0.h
1 #ifndef ALIEMCALV0_H
2 #define ALIEMCALV0_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                      
5          */
6 /* $Id$ */
7
8 //_________________________________________________________________________
9 // Implementation version v0 of EMCAL Manager class 
10 //*--                  
11 //*-- Author: Yves Schutz (SUBATECH)
12 //*-- and   : Sahal Yacoob (LBL / UCT) 
13 //#include <assert.h>
14
15 // --- ROOT system ---
16
17 class TFile;
18 class TList;
19 class TNode;
20
21 // --- AliRoot header files ---
22 #include "AliEMCAL.h"
23
24 //class AliEMCALGeometry ; 
25
26 class AliEMCALv0 : public AliEMCAL {
27
28  public:
29
30   AliEMCALv0():AliEMCAL() {}
31   AliEMCALv0(const char *name, const char *title="") ;
32   AliEMCALv0(const AliEMCALv0 & emcal):AliEMCAL(emcal) {
33     // cpy ctor: no implementation yet
34     // requested by the Coding Convention
35     Fatal("cpy ctor", "not implemented") ;  
36   } 
37   virtual ~AliEMCALv0(){} 
38
39   virtual void BuildGeometry();// creates the geometry for the ROOT display
40   TNode *BuildGeometryOfWSUC();  // WSUC - test environment
41   virtual void CreateGeometry() ;// creates the geometry for GEANT
42   virtual void   Init(void) ;                                       // does nothing
43   virtual Int_t  IsVersion(void) const { 
44     // Gives the version number 
45     return 0 ; 
46   }
47   virtual const TString Version(void) const{ 
48     // As above
49     return TString("v0") ; 
50   }
51   
52   AliEMCALv0 & operator = (const AliEMCALv0 & /*rvalue*/)  {
53     // assignement operator requested by coding convention but not needed
54     Fatal("operator =", "not implemented") ;  
55     return *this ; 
56   }
57   // ShishKebab 
58   void CreateShishKebabGeometry();
59   void CreateSmod(const char* mother="XEN1");
60   void CreateEmod(const char* mother="SMOD", const char* child="EMOD");
61   // TRD1
62   void Trd1Tower3X3(const double parSCM0[5]);
63   void Trd1Tower4X4();
64   void PbInTrap(const double parTRAP[11], TString n);
65   // TRD2 - 1th design
66   void Scm0InTrd2(const AliEMCALGeometry * g, const Double_t parEMOD[5], Double_t parSCM0[5]);
67   void Division2X2InScm0(const AliEMCALGeometry * g, const Double_t parSCM0[5]);
68   void PbInTrapForTrd2(const double *parTRAP, TString name);
69   // TRD2 - 2th design
70   void PbmoInTrd2(const AliEMCALGeometry * g, const Double_t parEMOD[5], Double_t parPBMO[5]);
71   void Division2X2InPbmo(const AliEMCALGeometry * g, const Double_t parPBMO[5]);
72
73   TList *fShishKebabModules; //! list of modules for twist geometries
74   
75  protected:
76
77   ClassDef(AliEMCALv0,2)  // Implementation of EMCAL manager class for midrapidity barrel layout between 0 and 120 degrees 
78     
79     };
80     
81 #endif // AliEMCALV0_H