32 #include "ExN02DetectorConstruction.hh"
33 #include "ExN02DetectorMessenger.hh"
34 #include "ExN02ChamberParameterisation.hh"
35 #include "ExN02MagneticField.hh"
36 #include "ExN02TrackerSD.hh"
58 :solidWorld(0), logicWorld(0), physiWorld(0),
59 solidTarget(0), logicTarget(0), physiTarget(0),
60 solidTracker(0),logicTracker(0),physiTracker(0),
61 solidChamber(0),logicChamber(0),physiChamber(0),
62 TargetMater(0), ChamberMater(0),chamberParam(0),
63 stepLimit(0), fpMagField(0),
64 fWorldLength(0.), fTargetLength(0.), fTrackerLength(0.),
65 NbOfChambers(0) , ChamberWidth(0.), ChamberSpacing(0.)
78 delete detectorMessenger;
116 ChamberWidth = 20*
cm;
117 ChamberSpacing = 80*
cm;
119 fTrackerLength = (NbOfChambers+1)*ChamberSpacing;
120 fTargetLength = 5.0 *
cm;
123 ChamberMater = Xenon;
125 fWorldLength= 1.2 *(fTargetLength+fTrackerLength);
127 G4double targetSize = 0.5*fTargetLength;
128 G4double trackerSize = 0.5*fTrackerLength;
136 G4double HalfWorldLength = 0.5*fWorldLength;
139 G4cout <<
"Computed tolerance = "
143 solidWorld=
new G4Box(
"world",HalfWorldLength,HalfWorldLength,HalfWorldLength);
162 solidTarget =
new G4Box(
"target",targetSize,targetSize,targetSize);
163 logicTarget =
new G4LogicalVolume(solidTarget,TargetMater,
"Target",0,0,0);
172 G4cout <<
"Target is " << fTargetLength/
cm <<
" cm of "
181 solidTracker =
new G4Box(
"tracker",trackerSize,trackerSize,trackerSize);
182 logicTracker =
new G4LogicalVolume(solidTracker , Air,
"Tracker",0,0,0);
198 solidChamber =
new G4Box(
"chamber", 100*
cm, 100*
cm, 10*
cm);
199 logicChamber =
new G4LogicalVolume(solidChamber,ChamberMater,
"Chamber",0,0,0);
201 G4double firstPosition = -trackerSize + 0.5*ChamberWidth;
202 G4double firstLength = fTrackerLength/10;
203 G4double lastLength = fTrackerLength;
223 G4cout <<
"There are " << NbOfChambers <<
" chambers in the tracker region. "
224 <<
"The chambers are " << ChamberWidth/
mm <<
" mm of "
225 << ChamberMater->
GetName() <<
"\n The distance between chamber is "
226 << ChamberSpacing/
cm <<
" cm" <<
G4endl;
234 G4String trackerChamberSDname =
"ExN02/TrackerChamberSD";
257 G4double maxStep = 0.5*ChamberWidth;
277 {TargetMater = pttoMaterial;
279 G4cout <<
"\n----> The target is " << fTargetLength/
cm <<
" cm of "
280 << materialName <<
G4endl;
291 {ChamberMater = pttoMaterial;
293 G4cout <<
"\n----> The chambers are " << ChamberWidth/
cm <<
" cm of "
294 << materialName <<
G4endl;