Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:17:12

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 /// \file XrayTESdetDetectorConstruction.hh
0027 /// \brief Definition of the DetectorConstruction class
0028 //
0029 //
0030 // Authors: P.Dondero (paolo.dondero@cern.ch), R.Stanzani (ronny.stanzani@cern.ch)
0031 //
0032 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
0033 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
0034 
0035 
0036 #ifndef XrayTESdetDetectorConstruction_h
0037 #define XrayTESdetDetectorConstruction_h 1
0038 
0039 class XrayTESdetDetectorMessenger;
0040 class G4LogicalVolume;
0041 class G4VPhysicalVolume;
0042 class G4UserLimits;
0043 class G4PVPlacement;
0044 
0045 #include "G4VUserDetectorConstruction.hh"
0046 #include "G4GDMLParser.hh"
0047 #include "G4PVParameterised.hh"
0048 
0049 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
0050 
0051 class XrayTESdetDetectorConstruction : public G4VUserDetectorConstruction
0052 {
0053    public:
0054 
0055      explicit XrayTESdetDetectorConstruction();
0056      ~XrayTESdetDetectorConstruction() override;
0057      G4VPhysicalVolume* Construct() override;
0058      void SetMaxStep (G4double);
0059      void SetReadFile(G4String);
0060 
0061    private:
0062 
0063      // GDMLparser
0064      G4GDMLParser fParser;
0065      G4String fReadFile;
0066      G4UserLimits* fStepLimitPolyfilta;
0067      G4UserLimits* fStepLimitAlfilta;
0068      G4UserLimits* fStepLimitmembrane;
0069      G4PVPlacement* fExperimentalHall_phys;
0070      XrayTESdetDetectorMessenger* fDetectorMessenger;
0071      G4VPhysicalVolume* ConstructDetector();
0072      G4PVParameterised* fPhysiDet;
0073 
0074      // Logical volumes
0075      G4LogicalVolume* fExperimentalHall_log;
0076      G4LogicalVolume* fElement_log;
0077      G4LogicalVolume* fMembranepxl_log;
0078      G4LogicalVolume* fDetector_log;
0079      G4LogicalVolume* fBipxl_log;
0080      G4LogicalVolume* fACDpxl_log;
0081      G4LogicalVolume* fInACDpxl_log;
0082      G4LogicalVolume* fGridpiece_log;
0083      G4LogicalVolume* fWafer_log;
0084      G4LogicalVolume* fACplate_log;
0085      G4LogicalVolume* fCagewall_log;
0086      G4LogicalVolume* fMinicagewall_log;
0087      G4LogicalVolume* fExtcagewall_log;
0088      G4LogicalVolume* fExtboard_log;
0089      G4LogicalVolume* fMesh_log;
0090      G4LogicalVolume* fSphere_log;
0091      G4LogicalVolume* fBSC_log;
0092      G4LogicalVolume* fTrapezoid_A_log;
0093      G4LogicalVolume* fTrapezoid_B_log;
0094      G4LogicalVolume* fTrapezoid_C_log;
0095      G4LogicalVolume* fTrapezoid_D_log;
0096      G4LogicalVolume* fWorld_log;
0097 
0098      // Physical volumes
0099      G4VPhysicalVolume* fBipxl_phys;
0100      G4VPhysicalVolume* fMembranepxl_phys;
0101      G4VPhysicalVolume* fGridpiece_phys;
0102      G4VPhysicalVolume* fDetector_phys;
0103      G4VPhysicalVolume* fACDpxl_phys;
0104      G4VPhysicalVolume* fInACDpxl_phys;
0105      G4VPhysicalVolume* fWafer_phys;
0106      G4VPhysicalVolume* fACplate_phys;
0107      G4VPhysicalVolume* fCagecolumn_phys;
0108      G4VPhysicalVolume* fCagecolumn2_phys;
0109      G4VPhysicalVolume* fCagecolumn3_phys;
0110      G4VPhysicalVolume* fCagecolumn4_phys;
0111      G4VPhysicalVolume* fCagecolumn5_phys;
0112      G4VPhysicalVolume* fCagecolumn6_phys;
0113      G4VPhysicalVolume* fEmptycagecolumn_phys;
0114      G4VPhysicalVolume* fEmptycagecolumn2_phys;
0115      G4VPhysicalVolume* fEmptycagecolumn3_phys;
0116      G4VPhysicalVolume* fCagewall_phys;
0117      G4VPhysicalVolume* fCagewall2_phys;
0118      G4VPhysicalVolume* fCagewall3_phys;
0119      G4VPhysicalVolume* fCagewall4_phys;
0120      G4VPhysicalVolume* fCagewall5_phys;
0121      G4VPhysicalVolume* fCagewall6_phys;
0122      G4VPhysicalVolume* fMinicagewall_phys;
0123      G4VPhysicalVolume* fMinicagewall2_phys;
0124      G4VPhysicalVolume* fMinicagewall3_phys;
0125      G4VPhysicalVolume* fExtcagewall_phys;
0126      G4VPhysicalVolume* fExtcagewall2_phys;
0127      G4VPhysicalVolume* fExtboard_phys;
0128      G4VPhysicalVolume* fExtboard2_phys;
0129      G4VPhysicalVolume* fRing_phys;
0130      G4VPhysicalVolume* fFirstShield_botplate_phys;
0131      G4VPhysicalVolume* fFirstShield_side_phys;
0132      G4VPhysicalVolume* fFirstShield_topplate_phys;
0133      G4VPhysicalVolume* fFirstShield_topcyl_phys;
0134      G4VPhysicalVolume* fSecondShieldbotPlate_phys;
0135      G4VPhysicalVolume* fSecondShieldside_phys;
0136      G4VPhysicalVolume* fSecondShieldtopPlate_phys;
0137      G4VPhysicalVolume* fSecondShieldshield_topcyl_phys;
0138      G4VPhysicalVolume* fThirdShieldbotPlate_phys;
0139      G4VPhysicalVolume* fThirdShieldbotCone_phys;
0140      G4VPhysicalVolume* fThirdShieldtopCone_phys;
0141      G4VPhysicalVolume* fThirdShieldside_phys;
0142      G4VPhysicalVolume* fCryostatbotPlate_phys;
0143      G4VPhysicalVolume* fCryostatbotCone_phys;
0144      G4VPhysicalVolume* fCryostatbotSide_phys;
0145      G4VPhysicalVolume* fCryostatmidSide_phys;
0146      G4VPhysicalVolume* fCryostattopSide_phys;
0147      G4VPhysicalVolume* fCryostattopCone_phys;
0148      G4VPhysicalVolume* fAC_phys;
0149      G4VPhysicalVolume* fACIC_phys;
0150      G4VPhysicalVolume* fMesh_phys;
0151      G4VPhysicalVolume* fSphere_phys;
0152      G4VPhysicalVolume* fFiltercarrier_phys;
0153      G4VPhysicalVolume* fBSC_phys;
0154      G4VPhysicalVolume* fAlFilter_phys;
0155      G4VPhysicalVolume* fTrapezoid_A_phys;
0156      G4VPhysicalVolume* fTrapezoid_B_phys;
0157      G4VPhysicalVolume* fTrapezoid_C_phys;
0158      G4VPhysicalVolume* fTrapezoid_D_phys;
0159 };
0160 
0161 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
0162 
0163 #endif