27 #include "ExN04DetectorConstruction.hh"
28 #include "ExN04TrackerSD.hh"
29 #include "ExN04CalorimeterSD.hh"
30 #include "ExN04CalorimeterROGeometry.hh"
31 #include "ExN04MuonSD.hh"
32 #include "ExN04TrackerParametrisation.hh"
33 #include "ExN04CalorimeterParametrisation.hh"
34 #include "ExN04Field.hh"
58 #include "ExN04DetectorParameterDef.icc"
77 void ExN04DetectorConstruction::DefineMaterials()
104 Scinti =
new G4Material(
"Scintillator", density= 1.032*
g/
cm3, nel=2);
115 static G4bool fieldIsInitialized =
false;
116 if(!fieldIsInitialized)
124 fieldIsInitialized =
true;
133 G4Box * experimentalHall_box
134 =
new G4Box(
"expHall_b",expHall_x,expHall_y,expHall_z);
144 =
new G4Tubs(
"trkTubs_tubs",trkTubs_rmin,trkTubs_rmax,trkTubs_dz,
145 trkTubs_sphi,trkTubs_dphi);
150 experimentalHall_log,
false,0);
159 =
new G4Tubs(
"trackerLayer_tubs",trkTubs_rmin,trkTubs_rmax,trkTubs_dz,
160 trkTubs_sphi,trkTubs_dphi);
168 kXAxis, notrkLayers, trackerParam);
176 =
new G4Tubs(
"calorimeter_tubs",caloTubs_rmin,caloTubs_rmax,
177 caloTubs_dz,caloTubs_sphi,caloTubs_dphi);
182 experimentalHall_log,
false,0);
192 =
new G4Tubs(
"caloLayer_tubs",caloRing_rmin,caloRing_rmax,
193 caloRing_dz,caloRing_sphi,caloRing_dphi);
201 kXAxis, nocaloLayers, calorimeterParam);
209 =
new G4Box(
"muoncounter_box",muBox_width,muBox_thick,
213 for(
int i=0; i<nomucounter ; i++)
216 phi = 360.*
deg/nomucounter*i;
217 x = muBox_radius*std::sin(phi);
218 y = muBox_radius*std::cos(phi);
223 muoncounter_log,
"muoncounter_P",
224 experimentalHall_log,
false,i);
237 G4String trackerSDname =
"/mydet/tracker";
242 G4String calorimeterSDname =
"/mydet/calorimeter";
244 G4String ROgeometryName =
"CalorimeterROGeom";
247 calRO->
SetName(ROgeometryName);
252 G4String muonSDname =
"/mydet/muon";
261 return experimentalHall_phys;