source: trunk/examples/advanced/composite_calorimeter/include/CCalHcal.hh @ 1321

Last change on this file since 1321 was 807, checked in by garnier, 16 years ago

update

File size: 6.3 KB
Line 
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//
26///////////////////////////////////////////////////////////////////////////////
27// File: CCalHcal.hh
28// Description: Equipped to construct the geometry of the hadron calorimeter
29///////////////////////////////////////////////////////////////////////////////
30#ifndef CCalHcal_h
31#define CCalHcal_h 1
32
33#include "CCalDetector.hh"
34
35class CCalHcal: public CCalDetector {
36public:
37  //Constructor and Destructor
38  CCalHcal(const G4String &name);
39  virtual ~CCalHcal();
40
41  //Get Methods
42  G4String getGenMat()                    const {return genMaterial;}
43  double   getDy_2Cal()                   const {return dy_2Cal;}
44  double   getDx_2Cal()                   const {return dx_2Cal;}
45  double   getXposCal()                   const {return xposCal;}
46  G4String getBoxMat()                    const {return boxMaterial;}
47  int      getNBox()                      const {return nBox;}
48  double   getDy_2Box()                   const {return dy_2Box;}
49  double   getDx_2Box()                   const {return dx_2Box;}
50  double   getWallThickBox()              const {return wallThickBox;}
51  double   getXposBox(unsigned int i)     const {return xposBox[i];}
52  int      getNLayerScnt()                const {return nLayerScnt;}
53  int      getTypeScnt(unsigned int i)    const {return typeLayerScnt[i];}
54  int      getMotherScnt(unsigned int i)  const {return mothLayerScnt[i];}
55  double   getXposScnt(unsigned int i)    const {return xposLayerScnt[i];}
56  int      getNLayerAbs()                 const {return nLayerAbs;}
57  int      getTypeAbs(unsigned int i)     const {return typeLayerAbs[i];}
58  int      getMotherAbs(unsigned int i)   const {return mothLayerAbs[i];}
59  double   getXposAbs(unsigned int i)     const {return xposLayerAbs[i];}
60  G4String getAbsMat()                    const {return absMaterial;}
61  int      getNAbsorber()                 const {return nAbsorber;}
62  double   getDy_2Abs(     )              const {return dy_2Absorber;}
63  double   getDx_2Abs(unsigned int i)     const {return dx_2Absorber[i];}
64  G4String getScntMat()                   const {return scntMaterial;}
65  G4String getWrapMat()                   const {return wrapMaterial;}
66  G4String getPlasMat()                   const {return plasMaterial;}
67  int      getNScintillator()             const {return nScintillator;}
68  double   getDy_2ScntLay(unsigned int i) const {return dy_2ScntLayer[i];}
69  double   getDx_2ScntLay(unsigned int i) const {return dx_2ScntLayer[i];}
70  double   getDx_2Wrap(unsigned int i)    const {return dx_2Wrapper[i];}
71  double   getDx_2FrontP(unsigned int i)  const {return dx_2FrontPlastic[i];}
72  double   getDx_2BackP(unsigned int i)   const {return dx_2BackPlastic[i];}
73  double   getDx_2Scnt(unsigned int i)    const {return dx_2Scintillator[i];}
74
75protected:
76  virtual int readFile();
77  virtual void constructDaughters();
78
79private:
80  G4String genMaterial;            //General material
81  double   dy_2Cal;                //Half width     of the Hcal
82  double   dx_2Cal;                //Half thickness of the Hcal
83  double   xposCal;                //Position in mother
84
85  G4String boxMaterial;            //Material of boxes
86  int      nBox;                   //Number of boxes
87  double   dy_2Box;                //Half width     of the Boxes
88  double   dx_2Box;                //Half thickness of the Boxes
89  double   wallThickBox;           //Wall thickness of the boxes
90  double*  xposBox;                //Position in mother
91
92  int      nLayerScnt;             //Number of scintillator layers
93  int*     typeLayerScnt;          //Layer type
94  int*     mothLayerScnt;          //Mother type
95  double*  xposLayerScnt;          //Position in mother
96
97  int      nLayerAbs;              //Number of absorber     layers
98  int*     typeLayerAbs;           //Layer type
99  int*     mothLayerAbs;           //Mother type
100  double*  xposLayerAbs;           //Position in mother
101
102  G4String absMaterial;            //Material of absorbers
103  int      nAbsorber;              //Number of absorber types
104  double   dy_2Absorber;           //Half width     of the absorbers
105  double*  dx_2Absorber;           //Half thickness of the absorbers
106
107  G4String scntMaterial;           //Material of Scintillator
108  G4String wrapMaterial;           //Material of Wrapper
109  G4String plasMaterial;           //Material of plastic cover
110  int      nScintillator;          //Number of scintillator types
111  double*  dy_2ScntLayer;          //Half width     of scintillator layers
112  double*  dx_2ScntLayer;          //Half thickness of scintillator layers
113  double*  dx_2Wrapper;            //Half thickness of wrappers
114  double*  dx_2FrontPlastic;       //Half thickness of front plastic
115  double*  dx_2BackPlastic;        //Half thickness of back  plastic
116  double*  dx_2Scintillator;       //Half thickness of scintillators
117};
118
119#endif
Note: See TracBrowser for help on using the repository browser.