Line data Source code
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 : // An object of this class does not produce hits nor digits
11 : // It is the one to use if you do not want to produce outputs in TREEH or TREED
12 : // This class places a Geometry of the EMCAL in the ALICE Detector as defined in AliEMCALGeometry.cxx
13 : //*-- Author: Yves Schutz (SUBATECH)
14 : //*-- and : Sahal Yacoob (LBL / UCT)
15 : // : Aleksei Pavlinov (WSU) SHASHLYK
16 :
17 : // --- ROOT system ---
18 :
19 : class TFile;
20 : class TList;
21 : class AliEMCALShishKebabTrd1Module;
22 : class AliEMCALSpaceFrame;
23 :
24 : // --- AliRoot header files ---
25 : #include "AliEMCAL.h"
26 : #include "TGeoManager.h"
27 : #include <TArrayF.h>
28 :
29 : class AliEMCALv0 : public AliEMCAL {
30 :
31 : public:
32 :
33 : AliEMCALv0();
34 : AliEMCALv0(const char *name, const char *title="",const Bool_t checkGeoAndRun = kTRUE) ;
35 26 : virtual ~AliEMCALv0(){}
36 :
37 : using AliEMCAL::AddHit;
38 :
39 : virtual void AddAlignableVolumes() const;
40 : virtual void AddAlignableVolumesInALICE() const;
41 : virtual void AddAlignableVolumesInWSUC() const;
42 :
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 0 : return 0 ;
48 : }
49 : virtual const TString Version(void) const{
50 : // As above
51 0 : return TString("v0") ;
52 : }
53 : // ShishKebab
54 : void CreateShishKebabGeometry();
55 : void CreateSmod(const char* mother="XEN1");
56 : void CreateEmod(const char* mother="SMOD", const char* child="EMOD");
57 : void CreateAlFrontPlate(const char* mother="EMOD", const char* child="ALFP");
58 : // TRD1
59 : void Trd1Tower3X3(const Double_t *parSCM0);
60 : void PbInTrap(const Double_t parTRAP[11], TString n);
61 : // 1X1 case - Nov 22, 2006
62 : void Trd1Tower1X1(Double_t *parSCM0);
63 : void PbInTrd1(const Double_t *parTrd1, TString n);
64 :
65 0 : TList *GetShishKebabModules() const {return fShishKebabModules;}
66 : AliEMCALShishKebabTrd1Module *GetShishKebabModule(Int_t neta=0);
67 :
68 : protected:
69 : TList *fShishKebabModules; //! list of modules
70 : private:
71 : TArrayF fEnvelop1; //! parameters of EMCAL envelop for TRD1(2) case
72 : Int_t fIdRotm; //! number of rotation matrix (working variable)
73 : Int_t *fIdTmedArr; //! fIdtmed->GetArray() - 1599;
74 : Double_t fSampleWidth; //! sample width = double(g->GetECPbRadThick()+g->GetECScintThick());
75 : Double_t fSmodPar0; //! x size of super module
76 : Double_t fSmodPar1; //! y size of super module
77 : Double_t fSmodPar2; //! z size of super module
78 : Double_t fInnerEdge; //! Inner edge of DCAL super module
79 : Double_t fParEMOD[5]; //! parameters of EMCAL module (TRD1,2)
80 : AliEMCALSpaceFrame* fCalFrame; //EMCAL Space frame object
81 :
82 : AliEMCALv0(const AliEMCALv0 & emcal);
83 : AliEMCALv0 & operator = (const AliEMCALv0 & /*rvalue*/);
84 :
85 60 : ClassDef(AliEMCALv0,4) // Implementation of EMCAL manager class for midrapidity barrel layout between 80 and 180(190) degrees
86 :
87 : };
88 :
89 : #endif // AliEMCALV0_H
|