Back to home page

EIC code displayed by LXR

 
 

    


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

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: CCalEcal.hh
0028 // Description: CCalEcal Geometry factory class for crystal matrix
0029 ///////////////////////////////////////////////////////////////////////////////
0030 #ifndef CCalEcal_h
0031 #define CCalEcal_h 1
0032 
0033 #include "CCalDetector.hh"
0034 
0035 class CCalEcal: public CCalDetector
0036 {
0037 
0038 public:
0039   //Constructor and Destructor
0040   CCalEcal(const G4String &name):
0041     CCalDetector(name) {}
0042   virtual ~CCalEcal();
0043 
0044   //Get Methods
0045   G4String getGenMat()                 const {return genMat;}
0046   G4double getWidBox()                 const {return widBox;}
0047   G4double getLengBox()                const {return lengBox;}
0048   G4double getXpos()                   const {return xpos;}
0049   G4double getYpos()                   const {return ypos;}
0050   G4double getZpos()                   const {return zpos;}
0051   G4double getThetaX()                 const {return thetaX;}
0052   G4double getPhiX()                   const {return phiX;}
0053   G4double getThetaY()                 const {return thetaY;}
0054   G4double getPhiY()                   const {return phiY;}
0055   G4double getThetaZ()                 const {return thetaZ;}
0056   G4double getPhiZ()                   const {return phiZ;}
0057   G4String getLayMat()                 const {return layMat;}
0058   G4int getLayNum()                    const {return layNum;}
0059   G4double getLayRadius()              const {return layRadius;}
0060   G4double getLayAngle()               const {return layAngle;}
0061   G4double getLengFront()              const {return lengFront;}
0062   G4double getLayPar(unsigned int i)   const {return layPar[i];}
0063   G4String getCrystMat()               const {return crystMat;}
0064   G4int getCrystNum()                  const {return crystNum;}
0065   G4double getCrystLength()            const {return crystLength;}
0066   G4double getCrystTol()               const {return crystTol;}
0067   G4double getCrystPar(unsigned int i) const {return crystPar[i];}
0068   G4String getSuppMat()                const {return suppMat;}
0069   G4double getDxSupp()                 const {return dxSupp;}
0070   G4double getDySupp()                 const {return dySupp;}
0071   G4double getDzSupp()                 const {return dzSupp;}
0072   G4double getDistSupp()               const {return distSupp;}
0073 
0074 
0075 protected:
0076   virtual G4int readFile() override;
0077   virtual void constructDaughters() override;
0078 
0079 private:
0080   G4String genMat;                            //General material
0081   G4double widBox, lengBox;                   //Box parameters
0082   G4double xpos, ypos, zpos;                  //Translation matrix definition
0083   G4double thetaX,phiX,thetaY,phiY,thetaZ,phiZ; //Rotation matrix definition
0084   G4String layMat;                            //Material for the layers
0085   G4int layNum;                               //Layer numbers
0086   G4double layRadius,layAngle;                //Positioning parameters
0087   G4double lengFront;                         //Distance from front
0088   G4double layPar[5];                         //Layer parameters
0089   G4String crystMat;                          //Material for the crystals
0090   G4int crystNum;                             //Crystal numbers
0091   G4double crystLength;                       //Crystal length
0092   G4double crystTol;                          //Tolerance for position
0093   G4double crystPar[5];                       //Crystal parameters
0094   G4String suppMat;                           //Material of support system
0095   G4double dxSupp, dySupp, dzSupp;            //Dimension of support material
0096   G4double distSupp;                          //Separation of support material
0097 };
0098 
0099 #endif