35 #include "ExN02DetectorConstruction.hh"
36 #include "ExN02DetectorMessenger.hh"
37 #include "ExN02ChamberParameterisation.hh"
38 #include "ExN02MagneticField.hh"
39 #include "ExN02TrackerSD.hh"
60 :solidWorld(0), logicWorld(0), physiWorld(0),
61 solidTarget(0), logicTarget(0), physiTarget(0),
62 solidTracker(0),logicTracker(0),physiTracker(0),
63 solidChamber(0),logicChamber(0),physiChamber(0),
64 TargetMater(0), ChamberMater(0),chamberParam(0),
65 stepLimit(0), fpMagField(0),
66 fWorldLength(0.), fTargetLength(0.), fTrackerLength(0.),
67 NbOfChambers(0) , ChamberWidth(0.), ChamberSpacing(0.)
80 delete detectorMessenger;
118 ChamberWidth = 20*
cm;
119 ChamberSpacing = 80*
cm;
121 fTrackerLength = (NbOfChambers+1)*ChamberSpacing;
122 fTargetLength = 5.0 *
cm;
125 ChamberMater = Xenon;
127 fWorldLength= 1.2 *(fTargetLength+fTrackerLength);
129 G4double targetSize = 0.5*fTargetLength;
130 G4double trackerSize = 0.5*fTrackerLength;
138 G4double HalfWorldLength = 0.5*fWorldLength;
141 G4cout <<
"Computed tolerance = "
145 solidWorld=
new G4Box(
"world",HalfWorldLength,HalfWorldLength,HalfWorldLength);
164 solidTarget =
new G4Box(
"target",targetSize,targetSize,targetSize);
165 logicTarget =
new G4LogicalVolume(solidTarget,TargetMater,
"Target",0,0,0);
174 G4cout <<
"Target is " << fTargetLength/
cm <<
" cm of "
183 solidTracker =
new G4Box(
"tracker",trackerSize,trackerSize,trackerSize);
184 logicTracker =
new G4LogicalVolume(solidTracker , Air,
"Tracker",0,0,0);
200 solidChamber =
new G4Box(
"chamber", 100*
cm, 100*
cm, 10*
cm);
201 logicChamber =
new G4LogicalVolume(solidChamber,ChamberMater,
"Chamber",0,0,0);
203 G4double firstPosition = -trackerSize + 0.5*ChamberWidth;
204 G4double firstLength = fTrackerLength/10;
205 G4double lastLength = fTrackerLength;
225 G4cout <<
"There are " << NbOfChambers <<
" chambers in the tracker region. "
226 <<
"The chambers are " << ChamberWidth/
mm <<
" mm of "
227 << ChamberMater->
GetName() <<
"\n The distance between chamber is "
228 << ChamberSpacing/
cm <<
" cm" <<
G4endl;
236 G4String trackerChamberSDname =
"ExN02/TrackerChamberSD";
259 G4double maxStep = 0.5*ChamberWidth;
279 {TargetMater = pttoMaterial;
281 G4cout <<
"\n----> The target is " << fTargetLength/
cm <<
" cm of "
282 << materialName <<
G4endl;
293 {ChamberMater = pttoMaterial;
295 G4cout <<
"\n----> The chambers are " << ChamberWidth/
cm <<
" cm of "
296 << materialName <<
G4endl;