// // ******************************************************************** // * License and Disclaimer * // * * // * The Geant4 software is copyright of the Copyright Holders of * // * the Geant4 Collaboration. It is provided under the terms and * // * conditions of the Geant4 Software License, included in the file * // * LICENSE and available at http://cern.ch/geant4/license . These * // * include a list of copyright holders. * // * * // * Neither the authors of this software system, nor their employing * // * institutes,nor the agencies providing financial support for this * // * work make any representation or warranty, express or implied, * // * regarding this software system or assume any liability for its * // * use. Please see the license in the file LICENSE and URL above * // * for the full disclaimer and the limitation of liability. * // * * // * This code implementation is the result of the scientific and * // * technical work of the GEANT4 collaboration. * // * By using, copying, modifying or distributing the software (or * // * any work based on the software) you agree to acknowledge its * // * use in resulting scientific publications, and indicate your * // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // // /// \file B1DetectorConstruction.hh /// \brief Definition of the B1DetectorConstruction class #ifndef B1DetectorConstruction_h #define B1DetectorConstruction_h 1 #include "G4VUserDetectorConstruction.hh" #include "MGGerdaLocalMaterialTable.hh" #include "globals.hh" class G4VPhysicalVolume; class G4LogicalVolume; class MGEMIDetectorMessenger; /// Detector construction class to define materials and geometry. class B1DetectorConstruction : public G4VUserDetectorConstruction { public: B1DetectorConstruction(G4int WorldMat,G4double world_sizeX, G4double world_sizeY, G4double world_sizeZ, G4double leadshield_sizeX, G4double leadshield_sizeY, G4double leadshield_sizeZ, G4double coppershield_sizeX, G4double coppershield_sizeY, G4double coppershield_sizeZ, G4double Nfilledchamber_sizeX, G4double Nfilledchamber_sizeY, G4double Nfilledchamber_sizeZ, G4double Ndetwindow_Rmax, G4double Ndetwindow_sizeZ, G4double dethousing_Rmin, G4double dethousing_Rmax, G4double dethousing_sizeZ, G4double detvacuum_Rmax, G4double detvacuum_sizeZ, G4double dethousingclad_Rmin, G4double dethousingclad_Rmax, G4double dethousingclad_sizeZ, G4double detinnercap_Rmin, G4double detinnercap_Rmax, G4double detinnercap_sizeZ, G4double detinnercapbottom_Rmin, G4double detinnercapbottom_Rmax, G4double detinnercapbottom_sizeZ, G4double detinnercapring_Rmin, G4double detinnercapring_Rmax, G4double detinnercapring_sizeZ, G4double detinnercaptop_Rmax, G4double detinnercaptop_sizeZ, G4double detinnercapplate_Rmax, G4double detinnercapplate_sizeZ, G4double detpecap_Rmin, G4double detpecap_Rmax, G4double detpecap_sizeZ, G4double detpecaptop_Rmin, G4double detpecaptop_Rmax, G4double detpecaptop_sizeZ, G4double detdeadlayer_Rmax, G4double detdeadlayer_sizeZ, G4double crystal_l, G4double d_dead, G4double crystal_Rmax, G4double crystal_sizeZ, G4double hole_d, G4double hole_l, G4double detholeincrystal_Rmax, G4double detholeincrystal_sizeZ, G4double y, G4double detdeadcone_Rmin1, G4double detdeadcone_Rmax1, G4double detdeadcone_Rmin2, G4double detdeadcone_Rmax2, G4double detdeadcone_sizeZ, G4bool smarinelli_geom, G4double Cublock_sizeX, G4double Cublock_sizey, G4double Cublock_sizeZ, G4double drhole_Rmax, G4double drhole_sizeZ, G4double marinellis1l_Rmin, G4double marinellis1l_Rmax, G4double marinellis1l_sizeZ, G4double marinellis1o_Rmin, G4double marinellis1o_Rmax, G4double marinellis1o_sizeZ, G4double marinellis2o_Rmin1, G4double marinellis2o_Rmax1, G4double marinellis2o_Rmin2, G4double marinellis2o_Rmax2, G4double marinellis2o_sizeZ, G4double marinellis1i_Rmin1, G4double marinellis1i_Rmax1, G4double marinellis1i_Rmin2, G4double marinellis1i_Rmax2, G4double marinellis1i_sizeZ, G4double marinellis2l_Rmax, G4double marinellis2l_sizeZ, G4double marinellis3l_Rmax, G4double marinellis3l_sizeZ, G4double smarinelli_height, G4bool vsmarinelli_geom, G4double marinellivs1l_Rmin, G4double marinellivs1l_Rmax, G4double marinellivs1l_sizeZ, G4double marinellivs1o_Rmin1, G4double marinellivs1o_Rmax1, G4double marinellivs1o_Rmin2, G4double marinellivs1o_Rmax2, G4double marinellivs1o_sizeZ, G4double marinellivs2o_Rmin1, G4double marinellivs2o_Rmax1, G4double marinellivs2o_Rmin2, G4double marinellivs2o_Rmax2, G4double marinellivs2o_sizeZ, G4double marinellivs1i_Rmin1, G4double marinellivs1i_Rmax1, G4double marinellivs1i_Rmin2, G4double marinellivs1i_Rmax2, G4double marinellivs1i_sizeZ, G4double marinellivs2l_Rmax, G4double marinellivs2l_sizeZ, G4double marinellivs3l_Rmax, G4double marinellivs3l_sizeZ, G4double vsmarinelli_height, G4bool box_geom, G4double cudisks_Rmax, G4double cudisks_sizeZ, G4double bagbox_sizeX, G4double bagbox_sizeY, G4double bagbox_sizeZ, G4double samplebox_sizeX, G4double samplebox_sizeY, G4double samplebox_sizeZ, G4double box_thickness, G4bool tube_geom, G4double bagtube_Rmin, G4double bagtube_Rmax, G4double bagtube_sizeZ, G4double bagtube_fimax, G4double sampletube_Rmin, G4double sampletube_Rmax, G4double sampletube_sizeZ, G4double sampletube_fimax, G4bool twobox_geom, G4double detplasticcap_Rmax, G4double detplasticcap_sizeZ, G4double detplasticcap1_Rmax, G4double detplasticcap1_sizeZ, G4double detplasticshell_Rmin, G4double detplasticshell_Rmax, G4double detplasticshell_sizeZ, G4double spheretwobox_rad, G4bool liquid_geom, G4double sampleliquid_Rmin, G4double sampleliquid_Rmax, G4double sampleliquid_sizeZ, G4double sampleliquid_fimax, G4double boxliquid_height, G4bool nocuinsert_geom, G4double truncside_Rmin1, G4double truncside_Rmax1, G4double truncside_Rmin2, G4double truncside_Rmax2, G4double truncside_sizeZ, G4double trunctop_Rmax, G4double trunctop_sizeZ, G4double samplenocuinsert_sizeZ, G4double samplenocuinsert_sizeYBasemin, G4double samplenocuinsert_sizeYBasemax, G4double samplenocuinsert_sizeXSmallYmin, G4double samplenocuinsert_sizeXBigYmin, G4double samplenocuinsert_sizeXSmallYmax, G4double samplenocuinsert_sizeXBigYmax, G4bool marinelli_geom, G4double topbox_sizeX, G4double topbox_sizeY, G4double topbox_sizeZ, G4double side1_sizeX, G4double side1_sizeY, G4double side1_sizeZ, G4double side2_sizeX, G4double side2_sizeY, G4double side2_sizeZ, G4double bottombody_sizeX, G4double bottombody_sizeY, G4double bottombody_sizeZ, G4double bottomhole_Rmax, G4double bottomhole_sizeZ, G4double bottomhole_fimax, G4double innercyl_Rmin, G4double innercyl_Rmax, G4double innercyl_sizeZ, G4double innercyl_fimax, G4double innertop_Rmax, G4double innertop_sizeZ, G4double innertop_fimax, G4double samplemarinellibody_sizeX, G4double samplemarinellibody_sizeY, G4double samplemarinellibody_sizeZ, G4double samplemarinellihole_Rmax, G4double samplemarinellihole_sizeZ, G4double samplemarinellihole_fimax); virtual ~B1DetectorConstruction(); virtual G4VPhysicalVolume* Construct(); G4LogicalVolume* GetScoringVolume() const { return fScoringVolume; } void SetSampleMaterial(G4String mat_name){sample_mat_name = mat_name;}; protected: G4LogicalVolume* fScoringVolume; private: G4String sample_mat_name; G4int fWorldMat; G4double fWorld_sizeX; G4double fWorld_sizeY; G4double fWorld_sizeZ; G4double fleadshield_sizeX; G4double fleadshield_sizeY; G4double fleadshield_sizeZ; G4double fcoppershield_sizeX; G4double fcoppershield_sizeY; G4double fcoppershield_sizeZ; G4double fNfilledchamber_sizeX; G4double fNfilledchamber_sizeY; G4double fNfilledchamber_sizeZ; G4double fNdetwindow_Rmax; G4double fNdetwindow_sizeZ; G4double fdethousing_Rmin; G4double fdethousing_Rmax; G4double fdethousing_sizeZ; G4double fdetvacuum_Rmax; G4double fdetvacuum_sizeZ; G4double fdethousingclad_Rmin; G4double fdethousingclad_Rmax; G4double fdethousingclad_sizeZ; G4double fdetinnercap_Rmin; G4double fdetinnercap_Rmax; G4double fdetinnercap_sizeZ; G4double fdetinnercapbottom_Rmin; G4double fdetinnercapbottom_Rmax; G4double fdetinnercapbottom_sizeZ; G4double fdetinnercapring_Rmin; G4double fdetinnercapring_Rmax; G4double fdetinnercapring_sizeZ; G4double fdetinnercaptop_Rmax; G4double fdetinnercaptop_sizeZ; G4double fdetinnercapplate_Rmax; G4double fdetinnercapplate_sizeZ; G4double fdetpecap_Rmin; G4double fdetpecap_Rmax; G4double fdetpecap_sizeZ; G4double fdetpecaptop_Rmin; G4double fdetpecaptop_Rmax; G4double fdetpecaptop_sizeZ; G4double fdetdeadlayer_Rmax; G4double fdetdeadlayer_sizeZ; G4double fcrystal_l; G4double fd_dead; G4double fcrystal_Rmax; G4double fcrystal_sizeZ; G4double fhole_d; G4double fhole_l; G4double fdetholeincrystal_Rmax; G4double fdetholeincrystal_sizeZ; G4double fy; G4double fdetdeadcone_Rmin1; G4double fdetdeadcone_Rmax1; G4double fdetdeadcone_Rmin2; G4double fdetdeadcone_Rmax2; G4double fdetdeadcone_sizeZ; G4bool fsmarinelli_geom; G4double fCublock_sizeX; G4double fCublock_sizeY; G4double fCublock_sizeZ; G4double fdrhole_Rmax; G4double fdrhole_sizeZ; G4double fmarinellis1l_Rmin; G4double fmarinellis1l_Rmax; G4double fmarinellis1l_sizeZ; G4double fmarinellis1o_Rmin; G4double fmarinellis1o_Rmax; G4double fmarinellis1o_sizeZ; G4double fmarinellis2o_Rmin1; G4double fmarinellis2o_Rmax1; G4double fmarinellis2o_Rmin2; G4double fmarinellis2o_Rmax2; G4double fmarinellis2o_sizeZ; G4double fmarinellis1i_Rmin1; G4double fmarinellis1i_Rmax1; G4double fmarinellis1i_Rmin2; G4double fmarinellis1i_Rmax2; G4double fmarinellis1i_sizeZ; G4double fmarinellis2l_Rmax; G4double fmarinellis2l_sizeZ; G4double fmarinellis3l_Rmax; G4double fmarinellis3l_sizeZ; G4double fsmarinelli_height; G4bool fvsmarinelli_geom; G4double fmarinellivs1l_Rmin; G4double fmarinellivs1l_Rmax; G4double fmarinellivs1l_sizeZ; G4double fmarinellivs1o_Rmin1; G4double fmarinellivs1o_Rmax1; G4double fmarinellivs1o_Rmin2; G4double fmarinellivs1o_Rmax2; G4double fmarinellivs1o_sizeZ; G4double fmarinellivs2o_Rmin1; G4double fmarinellivs2o_Rmax1; G4double fmarinellivs2o_Rmin2; G4double fmarinellivs2o_Rmax2; G4double fmarinellivs2o_sizeZ; G4double fmarinellivs1i_Rmin1; G4double fmarinellivs1i_Rmax1; G4double fmarinellivs1i_Rmin2; G4double fmarinellivs1i_Rmax2; G4double fmarinellivs1i_sizeZ; G4double fmarinellivs2l_Rmax; G4double fmarinellivs2l_sizeZ; G4double fmarinellivs3l_Rmax; G4double fmarinellivs3l_sizeZ; G4double fvsmarinelli_height; G4bool fbox_geom; G4double fcudisks_Rmax; G4double fcudisks_sizeZ; G4double fbagbox_sizeX; G4double fbagbox_sizeY; G4double fbagbox_sizeZ; G4double fsamplebox_sizeX; G4double fsamplebox_sizeY; G4double fsamplebox_sizeZ; G4double fbox_thickness; G4double fbagtube_Rmin; G4double fbagtube_Rmax; G4double fbagtube_sizeZ; G4double fbagtube_fimax; G4bool ftube_geom; G4double fsampletube_Rmin; G4double fsampletube_Rmax; G4double fsampletube_sizeZ; G4double fsampletube_fimax; G4bool ftwobox_geom; G4double fdetplasticcap_Rmax; G4double fdetplasticcap_sizeZ; G4double fdetplasticcap1_Rmax; G4double fdetplasticcap1_sizeZ; G4double fdetplasticshell_Rmin; G4double fdetplasticshell_Rmax; G4double fdetplasticshell_sizeZ; G4double fspheretwobox_rad; G4bool fliquid_geom; G4double fsampleliquid_Rmin; G4double fsampleliquid_Rmax; G4double fsampleliquid_sizeZ; G4double fsampleliquid_fimax; G4double fboxliquid_height; G4bool fnocuinsert_geom; G4double ftruncside_Rmin1; G4double ftruncside_Rmax1; G4double ftruncside_Rmin2; G4double ftruncside_Rmax2; G4double ftruncside_sizeZ; G4double ftrunctop_Rmax; G4double ftrunctop_sizeZ; G4double fsamplenocuinsert_sizeZ; G4double fsamplenocuinsert_sizeYBasemin; G4double fsamplenocuinsert_sizeYBasemax; G4double fsamplenocuinsert_sizeXSmallYmin; G4double fsamplenocuinsert_sizeXBigYmin; G4double fsamplenocuinsert_sizeXSmallYmax; G4double fsamplenocuinsert_sizeXBigYmax; G4bool fmarinelli_geom; G4double ftopbox_sizeX; G4double ftopbox_sizeY; G4double ftopbox_sizeZ; G4double fside1_sizeX; G4double fside1_sizeY; G4double fside1_sizeZ; G4double fside2_sizeX; G4double fside2_sizeY; G4double fside2_sizeZ; G4double fbottombody_sizeX; G4double fbottombody_sizeY; G4double fbottombody_sizeZ; G4double fbottomhole_Rmax; G4double fbottomhole_sizeZ; G4double fbottomhole_fimax; G4double finnercyl_Rmin; G4double finnercyl_Rmax; G4double finnercyl_sizeZ; G4double finnercyl_fimax; G4double finnertop_Rmax; G4double finnertop_sizeZ; G4double finnertop_fimax; G4double fsamplemarinellibody_sizeX; G4double fsamplemarinellibody_sizeY; G4double fsamplemarinellibody_sizeZ; G4double fsamplemarinellihole_Rmax; G4double fsamplemarinellihole_sizeZ; G4double fsamplemarinellihole_fimax; MGEMIDetectorMessenger* theMessenger; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #endif