Minor correction before clean up for MDC
[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 //          : Aleksei Pavlinov (WSU)     SHASHLYK
14 //#include <assert.h>
15
16 // --- ROOT system ---
17
18 class TFile;
19 class TList;
20 class TNode;
21 class AliEMCALShishKebabTrd1Module;
22
23 // --- AliRoot header files ---
24 #include "AliEMCAL.h"
25
26 //class AliEMCALGeometry ; 
27
28 class AliEMCALv0 : public AliEMCAL {
29
30  public:
31
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") ;  
38   } 
39   virtual ~AliEMCALv0(){} 
40
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 
47     return 0 ; 
48   }
49   virtual const TString Version(void) const{ 
50     // As above
51     return TString("v0") ; 
52   }
53   
54   AliEMCALv0 & operator = (const AliEMCALv0 & /*rvalue*/)  {
55     // assignement operator requested by coding convention but not needed
56     Fatal("operator =", "not implemented") ;  
57     return *this ; 
58   }
59   // ShishKebab 
60   void CreateShishKebabGeometry();
61   void CreateSmod(const char* mother="XEN1");
62   void CreateEmod(const char* mother="SMOD", const char* child="EMOD");
63   // TRD1
64   void Trd1Tower3X3(const double parSCM0[5]);
65   void Trd1Tower4X4();
66   void PbInTrap(const double parTRAP[11], TString n);
67   // TRD2 - 1th design
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);
71   // TRD2 - 2th design
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]);
74
75   TList  *GetShishKebabModules() {return fShishKebabModules;}
76   AliEMCALShishKebabTrd1Module *GetShishKebabModule(const Int_t neta=0);
77  private:
78   TList *fShishKebabModules; //! list of modules for twist geometries
79   
80  protected:
81
82   ClassDef(AliEMCALv0,3)  // Implementation of EMCAL manager class for midrapidity barrel layout between 80 and 180(190) degrees 
83     
84     };
85     
86 #endif // AliEMCALV0_H