ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
CCalHcal.hh
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file CCalHcal.hh
1 //
2 // ********************************************************************
3 // * License and Disclaimer *
4 // * *
5 // * The Geant4 software is copyright of the Copyright Holders of *
6 // * the Geant4 Collaboration. It is provided under the terms and *
7 // * conditions of the Geant4 Software License, included in the file *
8 // * LICENSE and available at http://cern.ch/geant4/license . These *
9 // * include a list of copyright holders. *
10 // * *
11 // * Neither the authors of this software system, nor their employing *
12 // * institutes,nor the agencies providing financial support for this *
13 // * work make any representation or warranty, express or implied, *
14 // * regarding this software system or assume any liability for its *
15 // * use. Please see the license in the file LICENSE and URL above *
16 // * for the full disclaimer and the limitation of liability. *
17 // * *
18 // * This code implementation is the result of the scientific and *
19 // * technical work of the GEANT4 collaboration. *
20 // * By using, copying, modifying or distributing the software (or *
21 // * any work based on the software) you agree to acknowledge its *
22 // * use in resulting scientific publications, and indicate your *
23 // * acceptance of all terms of the Geant4 Software license. *
24 // ********************************************************************
25 //
27 // File: CCalHcal.hh
28 // Description: Equipped to construct the geometry of the hadron calorimeter
30 #ifndef CCalHcal_h
31 #define CCalHcal_h 1
32 
33 #include "CCalDetector.hh"
34 
35 class CCalHcal: public CCalDetector
36 {
37 public:
38  //Constructor and Destructor
39  CCalHcal(const G4String &name);
40  virtual ~CCalHcal();
41 
42  //Get Methods
43  G4String getGenMat() const {return genMaterial;}
44  G4double getDy_2Cal() const {return dy_2Cal;}
45  G4double getDx_2Cal() const {return dx_2Cal;}
46  G4double getXposCal() const {return xposCal;}
47  G4String getBoxMat() const {return boxMaterial;}
48  G4int getNBox() const {return nBox;}
49  G4double getDy_2Box() const {return dy_2Box;}
50  G4double getDx_2Box() const {return dx_2Box;}
52  G4double getXposBox(unsigned int i) const {return xposBox[i];}
53  G4int getNLayerScnt() const {return nLayerScnt;}
54  G4int getTypeScnt(unsigned int i) const {return typeLayerScnt[i];}
55  G4int getMotherScnt(unsigned int i) const {return mothLayerScnt[i];}
56  G4double getXposScnt(unsigned int i) const {return xposLayerScnt[i];}
57  G4int getNLayerAbs() const {return nLayerAbs;}
58  G4int getTypeAbs(unsigned int i) const {return typeLayerAbs[i];}
59  G4int getMotherAbs(unsigned int i) const {return mothLayerAbs[i];}
60  G4double getXposAbs(unsigned int i) const {return xposLayerAbs[i];}
61  G4String getAbsMat() const {return absMaterial;}
62  G4int getNAbsorber() const {return nAbsorber;}
63  G4double getDy_2Abs( ) const {return dy_2Absorber;}
64  G4double getDx_2Abs(unsigned int i) const {return dx_2Absorber[i];}
65  G4String getScntMat() const {return scntMaterial;}
66  G4String getWrapMat() const {return wrapMaterial;}
67  G4String getPlasMat() const {return plasMaterial;}
69  G4double getDy_2ScntLay(unsigned int i) const {return dy_2ScntLayer[i];}
70  G4double getDx_2ScntLay(unsigned int i) const {return dx_2ScntLayer[i];}
71  G4double getDx_2Wrap(unsigned int i) const {return dx_2Wrapper[i];}
72  G4double getDx_2FrontP(unsigned int i) const {return dx_2FrontPlastic[i];}
73  G4double getDx_2BackP(unsigned int i) const {return dx_2BackPlastic[i];}
74  G4double getDx_2Scnt(unsigned int i) const {return dx_2Scintillator[i];}
75 
76 protected:
77  virtual G4int readFile();
78  virtual void constructDaughters();
79 
80 private:
81  G4String genMaterial; //General material
82  G4double dy_2Cal; //Half width of the Hcal
83  G4double dx_2Cal; //Half thickness of the Hcal
84  G4double xposCal; //Position in mother
85 
86  G4String boxMaterial; //Material of boxes
87  G4int nBox; //Number of boxes
88  G4double dy_2Box; //Half width of the Boxes
89  G4double dx_2Box; //Half thickness of the Boxes
90  G4double wallThickBox; //Wall thickness of the boxes
91  G4double* xposBox; //Position in mother
92 
93  G4int nLayerScnt; //Number of scintillator layers
94  G4int* typeLayerScnt; //Layer type
95  G4int* mothLayerScnt; //Mother type
96  G4double* xposLayerScnt; //Position in mother
97 
98  G4int nLayerAbs; //Number of absorber layers
99  G4int* typeLayerAbs; //Layer type
100  G4int* mothLayerAbs; //Mother type
101  G4double* xposLayerAbs; //Position in mother
102 
103  G4String absMaterial; //Material of absorbers
104  G4int nAbsorber; //Number of absorber types
105  G4double dy_2Absorber; //Half width of the absorbers
106  G4double* dx_2Absorber; //Half thickness of the absorbers
107 
108  G4String scntMaterial; //Material of Scintillator
109  G4String wrapMaterial; //Material of Wrapper
110  G4String plasMaterial; //Material of plastic cover
111  G4int nScintillator; //Number of scintillator types
112  G4double* dy_2ScntLayer; //Half width of scintillator layers
113  G4double* dx_2ScntLayer; //Half thickness of scintillator layers
114  G4double* dx_2Wrapper; //Half thickness of wrappers
115  G4double* dx_2FrontPlastic; //Half thickness of front plastic
116  G4double* dx_2BackPlastic; //Half thickness of back plastic
117  G4double* dx_2Scintillator; //Half thickness of scintillators
118 };
119 
120 #endif