50 #include "ExN04CalorimeterParametrisation.hh"
51 #include "ExN04CalorimeterROGeometry.hh"
52 #include "ExN04CalorimeterSD.hh"
53 #include "ExN04DetectorConstruction.hh"
54 #include "ExN04Field.hh"
55 #include "ExN04MuonSD.hh"
56 #include "ExN04TrackerParametrisation.hh"
57 #include "ExN04TrackerSD.hh"
63 #include "ExN04DetectorParameterDef.icc"
73 void ExN04DetectorConstruction::DefineMaterials()
98 fScinti =
new G4Material(
"Scintillator", density= 1.032*
g/
cm3, nel=2);
110 static G4bool fieldIsInitialized =
false;
111 if ( !fieldIsInitialized ) {
116 fieldMgr-> SetDetectorField(myField);
117 fieldMgr-> CreateChordFinder(myField);
118 fieldIsInitialized =
true;
126 G4Box* experimentalHall_box =
127 new G4Box(
"expHall_b", fexpHall_x, fexpHall_y, fexpHall_z);
132 "expHall_P", 0,
false,0);
135 experimentalHallVisAtt-> SetForceWireframe(
true);
136 experimentalHall_log-> SetVisAttributes(experimentalHallVisAtt);
140 =
new G4Tubs(
"trkTubs_tubs", ftrkTubs_rmin, ftrkTubs_rmax, ftrkTubs_dz,
141 ftrkTubs_sphi, ftrkTubs_dphi);
146 experimentalHall_log,
false, 0);
156 =
new G4Tubs(
"trackerLayer_tubs", ftrkTubs_rmin, ftrkTubs_rmax, ftrkTubs_dz,
157 ftrkTubs_sphi, ftrkTubs_dphi);
165 kXAxis, fnotrkLayers, trackerParam);
173 =
new G4Tubs(
"calorimeter_tubs", fcaloTubs_rmin, fcaloTubs_rmax,
174 fcaloTubs_dz, fcaloTubs_sphi, fcaloTubs_dphi);
179 experimentalHall_log,
false,0);
189 =
new G4Tubs(
"caloLayer_tubs", fcaloRing_rmin, fcaloRing_rmax,
190 fcaloRing_dz, fcaloRing_sphi, fcaloRing_dphi);
198 kXAxis, fnocaloLayers, calorimeterParam);
207 =
new G4Box(
"muoncounter_box", fmuBox_width, fmuBox_thick, fmuBox_length);
211 for(
G4int i = 0; i < fnomucounter; i++ ) {
213 phi = 360.*
deg/fnomucounter*i;
214 x = fmuBox_radius*std::sin(phi);
215 y = fmuBox_radius*std::cos(phi);
221 muoncounter_log,
"muoncounter_P",
222 experimentalHall_log,
false,i);
235 G4String trackerSDname =
"/mydet/tracker";
240 G4String calorimeterSDname =
"/mydet/calorimeter";
242 G4String ROgeometryName =
"CalorimeterROGeom";
249 G4String muonSDname =
"/mydet/muon";
258 return experimentalHall_phys;
void SetForceWireframe(G4bool)
CLHEP::Hep3Vector G4ThreeVector
virtual G4VPhysicalVolume * Construct()
void SetROgeometry(G4VReadOutGeometry *value)
static G4TransportationManager * GetTransportationManager()
void AddNewDetector(G4VSensitiveDetector *aSD)
static G4SDManager * GetSDMpointer()
HepRotation & rotateZ(double delta)
ExN04DetectorConstruction()
~ExN04DetectorConstruction()
void SetVisAttributes(const G4VisAttributes *pVA)
void SetSensitiveDetector(G4VSensitiveDetector *pSDetector)