]>
Commit | Line | Data |
---|---|---|
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 | ||
15 | // --- ROOT system --- | |
16 | ||
17 | class TFile; | |
18 | class TList; | |
19 | class TNode; | |
20 | class AliEMCALShishKebabTrd1Module; | |
21 | ||
22 | // --- AliRoot header files --- | |
23 | #include "AliEMCAL.h" | |
24 | #include "TGeoManager.h" | |
25 | #include <TArrayF.h> | |
26 | //class AliEMCALGeometry ; | |
27 | ||
28 | class AliEMCALv0 : public AliEMCAL { | |
29 | ||
30 | public: | |
31 | ||
32 | AliEMCALv0(); | |
33 | AliEMCALv0(const char *name, const char *title="") ; | |
34 | virtual ~AliEMCALv0(){} | |
35 | ||
36 | using AliEMCAL::AddHit; | |
37 | ||
38 | virtual void AddAlignableVolumes() const; | |
39 | virtual void AddAlignableVolumesInALICE() const; | |
40 | virtual void AddAlignableVolumesInWSUC() const; | |
41 | ||
42 | virtual void BuildGeometry();// creates the geometry for the ROOT display | |
43 | TNode *BuildGeometryOfWSUC(); // WSUC - test environment | |
44 | virtual void CreateGeometry() ;// creates the geometry for GEANT | |
45 | virtual void Init(void) ; // does nothing | |
46 | virtual Int_t IsVersion(void) const { | |
47 | // Gives the version number | |
48 | return 0 ; | |
49 | } | |
50 | virtual const TString Version(void) const{ | |
51 | // As above | |
52 | return TString("v0") ; | |
53 | } | |
54 | ||
55 | // ShishKebab | |
56 | void CreateShishKebabGeometry(); | |
57 | void CreateSmod(const char* mother="XEN1"); | |
58 | void CreateEmod(const char* mother="SMOD", const char* child="EMOD"); | |
59 | // TRD1 | |
60 | void Trd1Tower3X3(const double *parSCM0); | |
61 | void Trd1Tower4X4(); | |
62 | void PbInTrap(const double parTRAP[11], TString n); | |
63 | // 1X1 case - Nov 22, 2006 | |
64 | void Trd1Tower1X1(double *parSCM0); | |
65 | void PbInTrd1(double *parTrd1, TString n); | |
66 | // TRD2 - 1th design | |
67 | void Scm0InTrd2(const AliEMCALGeometry * g, const Double_t emodPar[5], Double_t parSCM0[5]); | |
68 | void Division2X2InScm0(const AliEMCALGeometry * g, const Double_t parSCM0[5]); | |
69 | void PbInTrapForTrd2(const double *parTRAP, TString name); | |
70 | // TRD2 - 2th design | |
71 | void PbmoInTrd2(const AliEMCALGeometry * g, const Double_t emodPar[5], Double_t parPBMO[5]); | |
72 | void Division2X2InPbmo(const AliEMCALGeometry * g, const Double_t parPBMO[5]); | |
73 | ||
74 | TList *GetShishKebabModules() {return fShishKebabModules;} | |
75 | AliEMCALShishKebabTrd1Module *GetShishKebabModule(Int_t neta=0); | |
76 | ||
77 | protected: | |
78 | TList *fShishKebabModules; //! list of modules | |
79 | private: | |
80 | TArrayF fEnvelop1; //! parameters of EMCAL envelop for TRD1(2) case | |
81 | Int_t fIdRotm; //! number of rotation matrix (working variable) | |
82 | Int_t *fIdTmedArr; //! fIdtmed->GetArray() - 1599; | |
83 | Double_t fSampleWidth; //! sample width = double(g->GetECPbRadThick()+g->GetECScintThick()); | |
84 | Double_t fSmodPar0; //! x size of super module | |
85 | Double_t fSmodPar1; //! y size of super module | |
86 | Double_t fSmodPar2; //! z size of super module | |
87 | Double_t fParEMOD[5]; //! parameters of EMCAL module (TRD1,2) | |
88 | ||
89 | AliEMCALv0(const AliEMCALv0 & emcal); | |
90 | AliEMCALv0 & operator = (const AliEMCALv0 & /*rvalue*/); | |
91 | ||
92 | ClassDef(AliEMCALv0,3) // Implementation of EMCAL manager class for midrapidity barrel layout between 80 and 180(190) degrees | |
93 | ||
94 | }; | |
95 | ||
96 | #endif // AliEMCALV0_H |