32 #include "ExN04DetectorConstruction.hh"
33 #include "ExN04TrackerSD.hh"
34 #include "ExN04CalorimeterSD.hh"
35 #include "ExN04CalorimeterROGeometry.hh"
36 #include "ExN04MuonSD.hh"
37 #include "ExN04TrackerParametrisation.hh"
38 #include "ExN04CalorimeterParametrisation.hh"
39 #include "ExN04Field.hh"
63 #include "ExN04DetectorParameterDef.icc"
82 void ExN04DetectorConstruction::DefineMaterials()
109 Scinti =
new G4Material(
"Scintillator", density= 1.032*
g/
cm3, nel=2);
120 static G4bool fieldIsInitialized =
false;
121 if(!fieldIsInitialized)
129 fieldIsInitialized =
true;
138 G4Box * experimentalHall_box
139 =
new G4Box(
"expHall_b",expHall_x,expHall_y,expHall_z);
149 =
new G4Tubs(
"trkTubs_tubs",trkTubs_rmin,trkTubs_rmax,trkTubs_dz,
150 trkTubs_sphi,trkTubs_dphi);
155 experimentalHall_log,
false,0);
164 =
new G4Tubs(
"trackerLayer_tubs",trkTubs_rmin,trkTubs_rmax,trkTubs_dz,
165 trkTubs_sphi,trkTubs_dphi);
173 kXAxis, notrkLayers, trackerParam);
181 =
new G4Tubs(
"calorimeter_tubs",caloTubs_rmin,caloTubs_rmax,
182 caloTubs_dz,caloTubs_sphi,caloTubs_dphi);
187 experimentalHall_log,
false,0);
197 =
new G4Tubs(
"caloLayer_tubs",caloRing_rmin,caloRing_rmax,
198 caloRing_dz,caloRing_sphi,caloRing_dphi);
206 kXAxis, nocaloLayers, calorimeterParam);
214 =
new G4Box(
"muoncounter_box",muBox_width,muBox_thick,
218 for(
int i=0; i<nomucounter ; i++)
221 phi = 360.*
deg/nomucounter*i;
222 x = muBox_radius*std::sin(phi);
223 y = muBox_radius*std::cos(phi);
228 muoncounter_log,
"muoncounter_P",
229 experimentalHall_log,
false,i);
242 G4String trackerSDname =
"/mydet/tracker";
247 G4String calorimeterSDname =
"/mydet/calorimeter";
249 G4String ROgeometryName =
"CalorimeterROGeom";
252 calRO->
SetName(ROgeometryName);
257 G4String muonSDname =
"/mydet/muon";
266 return experimentalHall_phys;
static const G4VisAttributes & GetInvisible()
void SetForceWireframe(G4bool)
CLHEP::Hep3Vector G4ThreeVector
G4bool SetDetectorField(G4Field *detectorField)
virtual G4VPhysicalVolume * Construct()
void SetName(G4String value)
void SetROgeometry(G4VReadOutGeometry *value)
static G4TransportationManager * GetTransportationManager()
void AddNewDetector(G4VSensitiveDetector *aSD)
G4FieldManager * GetFieldManager() const
static G4SDManager * GetSDMpointer()
HepRotation & rotateZ(double delta)
void AddElement(G4Element *element, G4int nAtoms)
ExN04DetectorConstruction()
void CreateChordFinder(G4MagneticField *detectorMagField)
~ExN04DetectorConstruction()
void SetVisAttributes(const G4VisAttributes *pVA)
void SetSensitiveDetector(G4VSensitiveDetector *pSDetector)