116 G4Material* air = G4Material::GetMaterial(
"G4_AIR");
120 G4int NbOfChambers = 5;
121 G4double chamberSpacing = 80*cm;
123 G4double chamberWidth = 20.0*cm;
124 G4double targetLength = 5.0*cm;
126 G4double trackerLength = (NbOfChambers+1)*chamberSpacing;
128 G4double worldLength = 1.2 * (2*targetLength + trackerLength);
130 G4double targetRadius = 0.5*targetLength;
131 targetLength = 0.5*targetLength;
132 G4double trackerSize = 0.5*trackerLength;
138 G4GeometryManager::GetInstance()->SetWorldMaximumExtent(worldLength);
140 G4cout <<
"Computed tolerance = "
141 << G4GeometryTolerance::GetInstance()->GetSurfaceTolerance()/mm
144 auto worldS =
new G4Box(
"world",
145 worldLength / 2, worldLength / 2, worldLength / 2);
163 G4ThreeVector positionTarget = G4ThreeVector(0,0,-(targetLength+trackerSize));
165 auto targetS =
new G4Tubs(
"target", 0., targetRadius, targetLength, 0. * deg, 360. * deg);
176 G4cout <<
"Target is " << 2*targetLength/cm <<
" cm of "
181 G4ThreeVector positionTracker = G4ThreeVector(0,0,0);
183 auto trackerS =
new G4Tubs(
"tracker", 0, trackerSize, trackerSize, 0. * deg, 360. * deg);
184 auto trackerLV =
new G4LogicalVolume(trackerS, air,
"Tracker",
nullptr,
nullptr,
nullptr);
199 auto chamberS =
new G4Tubs(
"tracker", 0, 100 * cm, 100 * cm, 0. * deg, 360. * deg);
203 G4double firstPosition = -trackerSize + chamberSpacing;
204 G4double firstLength = trackerLength/10;
205 G4double lastLength = trackerLength;
226 G4cout <<
"There are " << NbOfChambers <<
" chambers in the tracker region. "
228 <<
"The chambers are " << chamberWidth/cm <<
" cm of "
230 <<
"The distance between chamber is " << chamberSpacing/cm <<
" cm"
237 worldLV ->SetVisAttributes(boxVisAtt);
239 trackerLV ->SetVisAttributes(boxVisAtt);
251 G4double maxStep = 0.5*chamberWidth;