]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EMCAL/AliEMCALv0.h
Adding ability to use multiple test functions
[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 // 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   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     return 0 ; 
48   }
49   virtual const TString Version(void) const{ 
50     // As above
51     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 *parSCM0);
60   void Trd1Tower4X4() const;
61   void PbInTrap(const double parTRAP[11], TString n);
62   // 1X1 case - Nov 22, 2006
63   void Trd1Tower1X1(double *parSCM0);
64   void PbInTrd1(const double *parTrd1, TString n);
65   // TRD2 - 1th design
66   void Scm0InTrd2(const AliEMCALGeometry * g, const Double_t emodPar[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 emodPar[5], Double_t parPBMO[5]);
71   void Division2X2InPbmo(const AliEMCALGeometry * g, const Double_t parPBMO[5]);
72
73   TList  *GetShishKebabModules() const {return fShishKebabModules;}
74   AliEMCALShishKebabTrd1Module *GetShishKebabModule(Int_t neta=0);
75
76  protected:
77   TList   *fShishKebabModules; //! list of modules
78  private:
79   TArrayF  fEnvelop1;          //! parameters of EMCAL envelop for TRD1(2) case 
80   Int_t    fIdRotm;            //! number of rotation matrix (working variable)
81   Int_t   *fIdTmedArr;         //! fIdtmed->GetArray() - 1599;
82   Double_t fSampleWidth;       //! sample width = double(g->GetECPbRadThick()+g->GetECScintThick());
83   Double_t fSmodPar0;          //! x size of super module  
84   Double_t fSmodPar1;          //! y size of super module  
85   Double_t fSmodPar2;          //! z size of super module  
86   Double_t fParEMOD[5];        //! parameters of EMCAL module (TRD1,2)
87   AliEMCALSpaceFrame* fCalFrame; //EMCAL Space frame object
88   
89   AliEMCALv0(const AliEMCALv0 & emcal);
90   AliEMCALv0 & operator = (const AliEMCALv0  & /*rvalue*/);
91  
92   ClassDef(AliEMCALv0,4) // Implementation of EMCAL manager class for midrapidity barrel layout between 80 and 180(190) degrees 
93     
94     };
95     
96 #endif // AliEMCALV0_H