Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-02-23 09:19:38

0001 //
0002 // ********************************************************************
0003 // * License and Disclaimer                                           *
0004 // *                                                                  *
0005 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
0006 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
0007 // * conditions of the Geant4 Software License,  included in the file *
0008 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
0009 // * include a list of copyright holders.                             *
0010 // *                                                                  *
0011 // * Neither the authors of this software system, nor their employing *
0012 // * institutes,nor the agencies providing financial support for this *
0013 // * work  make  any representation or  warranty, express or implied, *
0014 // * regarding  this  software system or assume any liability for its *
0015 // * use.  Please see the license in the file  LICENSE  and URL above *
0016 // * for the full disclaimer and the limitation of liability.         *
0017 // *                                                                  *
0018 // * This  code  implementation is the result of  the  scientific and *
0019 // * technical work of the GEANT4 collaboration.                      *
0020 // * By using,  copying,  modifying or  distributing the software (or *
0021 // * any work based  on the software)  you  agree  to acknowledge its *
0022 // * use  in  resulting  scientific  publications,  and indicate your *
0023 // * acceptance of all terms of the Geant4 Software license.          *
0024 // ********************************************************************
0025 //
0026 ///////////////////////////////////////////////////////////////////////////////
0027 // File: CCalHcal.hh
0028 // Description: Equipped to construct the geometry of the hadron calorimeter
0029 ///////////////////////////////////////////////////////////////////////////////
0030 #ifndef CCalHcal_h
0031 #define CCalHcal_h 1
0032 
0033 #include "CCalDetector.hh"
0034 
0035 class CCalHcal: public CCalDetector
0036 {
0037 public:
0038   //Constructor and Destructor
0039   CCalHcal(const G4String &name);
0040   virtual ~CCalHcal();
0041 
0042   //Get Methods
0043   G4String getGenMat()                      const {return genMaterial;}
0044   G4double   getDy_2Cal()                   const {return dy_2Cal;}
0045   G4double   getDx_2Cal()                   const {return dx_2Cal;}
0046   G4double   getXposCal()                   const {return xposCal;}
0047   G4String getBoxMat()                      const {return boxMaterial;}
0048   G4int      getNBox()                      const {return nBox;}
0049   G4double   getDy_2Box()                   const {return dy_2Box;}
0050   G4double   getDx_2Box()                   const {return dx_2Box;}
0051   G4double   getWallThickBox()              const {return wallThickBox;}
0052   G4double   getXposBox(unsigned int i)     const {return xposBox[i];}
0053   G4int      getNLayerScnt()                const {return nLayerScnt;}
0054   G4int      getTypeScnt(unsigned int i)    const {return typeLayerScnt[i];}
0055   G4int      getMotherScnt(unsigned int i)  const {return mothLayerScnt[i];}
0056   G4double   getXposScnt(unsigned int i)    const {return xposLayerScnt[i];}
0057   G4int      getNLayerAbs()                 const {return nLayerAbs;}
0058   G4int      getTypeAbs(unsigned int i)     const {return typeLayerAbs[i];}
0059   G4int      getMotherAbs(unsigned int i)   const {return mothLayerAbs[i];}
0060   G4double   getXposAbs(unsigned int i)     const {return xposLayerAbs[i];}
0061   G4String getAbsMat()                      const {return absMaterial;}
0062   G4int      getNAbsorber()                 const {return nAbsorber;}
0063   G4double   getDy_2Abs(     )              const {return dy_2Absorber;}
0064   G4double   getDx_2Abs(unsigned int i)     const {return dx_2Absorber[i];}
0065   G4String getScntMat()                     const {return scntMaterial;}
0066   G4String getWrapMat()                     const {return wrapMaterial;}
0067   G4String getPlasMat()                     const {return plasMaterial;}
0068   G4int      getNScintillator()             const {return nScintillator;}
0069   G4double   getDy_2ScntLay(unsigned int i) const {return dy_2ScntLayer[i];}
0070   G4double   getDx_2ScntLay(unsigned int i) const {return dx_2ScntLayer[i];}
0071   G4double   getDx_2Wrap(unsigned int i)    const {return dx_2Wrapper[i];}
0072   G4double   getDx_2FrontP(unsigned int i)  const {return dx_2FrontPlastic[i];}
0073   G4double   getDx_2BackP(unsigned int i)   const {return dx_2BackPlastic[i];}
0074   G4double   getDx_2Scnt(unsigned int i)    const {return dx_2Scintillator[i];}
0075 
0076 protected:
0077   virtual G4int readFile() override;
0078   virtual void constructDaughters() override;
0079 
0080 private:
0081   G4String genMaterial;              //General material
0082   G4double   dy_2Cal;                //Half width     of the Hcal 
0083   G4double   dx_2Cal;                //Half thickness of the Hcal
0084   G4double   xposCal;                //Position in mother
0085 
0086   G4String boxMaterial;              //Material of boxes
0087   G4int      nBox;                   //Number of boxes
0088   G4double   dy_2Box;                //Half width     of the Boxes
0089   G4double   dx_2Box;                //Half thickness of the Boxes
0090   G4double   wallThickBox;           //Wall thickness of the boxes
0091   G4double*  xposBox;                //Position in mother
0092 
0093   G4int      nLayerScnt;             //Number of scintillator layers
0094   G4int*     typeLayerScnt;          //Layer type
0095   G4int*     mothLayerScnt;          //Mother type
0096   G4double*  xposLayerScnt;          //Position in mother
0097 
0098   G4int      nLayerAbs;              //Number of absorber     layers
0099   G4int*     typeLayerAbs;           //Layer type
0100   G4int*     mothLayerAbs;           //Mother type
0101   G4double*  xposLayerAbs;           //Position in mother
0102 
0103   G4String absMaterial;              //Material of absorbers
0104   G4int      nAbsorber;              //Number of absorber types
0105   G4double   dy_2Absorber;           //Half width     of the absorbers
0106   G4double*  dx_2Absorber;           //Half thickness of the absorbers
0107 
0108   G4String scntMaterial;             //Material of Scintillator
0109   G4String wrapMaterial;             //Material of Wrapper
0110   G4String plasMaterial;             //Material of plastic cover
0111   G4int      nScintillator;          //Number of scintillator types
0112   G4double*  dy_2ScntLayer;          //Half width     of scintillator layers
0113   G4double*  dx_2ScntLayer;          //Half thickness of scintillator layers
0114   G4double*  dx_2Wrapper;            //Half thickness of wrappers
0115   G4double*  dx_2FrontPlastic;       //Half thickness of front plastic
0116   G4double*  dx_2BackPlastic;        //Half thickness of back  plastic
0117   G4double*  dx_2Scintillator;       //Half thickness of scintillators
0118 };
0119 
0120 #endif