74 : fAir(0), fArgonGas(0), fScintillator(0), fCsI(0), fLead(0),
75 fWorldVisAtt(0), fMagneticVisAtt(0),
76 fArmVisAtt(0), fHodoscopeVisAtt(0), fChamberVisAtt(0),
77 fWirePlaneVisAtt(0), fEMcalorimeterVisAtt(0), fCellVisAtt(0),
78 fHadCalorimeterVisAtt(0), fHadCalorimeterCellVisAtt(0),
79 fArmAngle(30.*
deg), fSecondArmPhys(0)
86 fArmRotation->
rotateY(fArmAngle);
92 delete fMagneticField;
99 delete fMagneticVisAtt;
101 delete fHodoscopeVisAtt;
102 delete fChamberVisAtt;
103 delete fWirePlaneVisAtt;
104 delete fEMcalorimeterVisAtt;
106 delete fHadCalorimeterVisAtt;
107 delete fHadCalorimeterCellVisAtt;
122 static G4bool fieldIsInitialized =
false;
124 if(!fieldIsInitialized)
128 fieldIsInitialized =
true;
146 =
new G4LogicalVolume(magneticSolid,G4_Galactic,
"magneticLogical",fFieldMgr,0,0);
153 "magneticPhysical",worldLogical,0,0);
164 "firstArmPhysical",worldLogical,0,0);
174 "fSecondArmPhys",worldLogical,0,0);
179 =
new G4LogicalVolume(hodoscope1Solid,fScintillator,
"hodoscope1Logical",0,0,0);
180 for(
int i1=0;i1<15;i1++)
184 "hodoscope1Physical",firstArmLogical,0,i1);
190 =
new G4LogicalVolume(chamber1Solid,fArgonGas,
"chamber1Logical",0,0,0);
191 for(
int j1=0;j1<5;j1++)
195 "chamber1Physical",firstArmLogical,0,j1);
201 =
new G4LogicalVolume(wirePlane1Solid,fArgonGas,
"wirePlane1Logical",0,0,0);
203 "wirePlane1Physical",chamber1Logical,0,0);
208 =
new G4LogicalVolume(hodoscope2Solid,fScintillator,
"hodoscope2Logical",0,0,0);
209 for(
int i2=0;i2<25;i2++)
213 "hodoscope2Physical",secondArmLogical,0,i2);
219 =
new G4LogicalVolume(chamber2Solid,fArgonGas,
"chamber2Logical",0,0,0);
220 for(
int j2=0;j2<5;j2++)
224 "chamber2Physical",secondArmLogical,0,j2);
230 =
new G4LogicalVolume(wirePlane2Solid,fArgonGas,
"wirePlane2Logical",0,0,0);
232 "wirePlane2Physical",chamber2Logical,0,0);
237 =
new G4LogicalVolume(EMcalorimeterSolid,fCsI,
"EMcalorimeterLogical",0,0,0);
239 "EMcalorimeterPhysical",secondArmLogical,0,0);
251 =
new G4Box(
"HadCalorimeterBox",1.5*
m,30.*
cm,50.*
cm);
253 =
new G4LogicalVolume(HadCalorimeterSolid,fLead,
"HadCalorimeterLogical",0,0,0);
255 "HadCalorimeterPhysical",secondArmLogical,0,0);
259 =
new G4Box(
"HadCalColumnBox",15.*
cm,30.*
cm,50.*
cm);
261 =
new G4LogicalVolume(HadCalColumnSolid,fLead,
"HadCalColumnLogical",0,0,0);
262 new G4PVReplica(
"HadCalColumnPhysical",HadCalColumnLogical,
263 HadCalorimeterLogical,
kXAxis,10,30.*
cm);
269 =
new G4LogicalVolume(HadCalCellSolid,fLead,
"HadCalCellLogical",0,0,0);
270 new G4PVReplica(
"HadCalCellPhysical",HadCalCellLogical,
271 HadCalColumnLogical,
kYAxis,2,30.*
cm);
275 =
new G4Box(
"HadCalLayerBox",15.*
cm,15.*
cm,2.5*
cm);
277 =
new G4LogicalVolume(HadCalLayerSolid,fLead,
"HadCalLayerLogical",0,0,0);
278 new G4PVReplica(
"HadCalLayerPhysical",HadCalLayerLogical,
283 =
new G4Box(
"HadCalScintiBox",15.*
cm,15.*
cm,0.5*
cm);
285 =
new G4LogicalVolume(HadCalScintiSolid,fScintillator,
"HadCalScintiLogical",0,0,0);
287 "HadCalScintiPhysical",HadCalLayerLogical,0,0);
363 return worldPhysical;
378 density = 1.782e-03*
g/
cm3;
379 fArgonGas =
new G4Material(name=
"ArgonGas", z=18., a, density);
396 density = 1.29*
mg/
cm3;
397 fAir =
new G4Material(name=
"Air", density, nElem=2);
402 density = 1.032*
g/
cm3;
403 fScintillator =
new G4Material(name=
"Scintillator", density, nElem=2);
408 density = 4.51*
g/
cm3;
409 fCsI =
new G4Material(name=
"CsI", density, nElem=2);
415 density = 11.35*
g/
cm3;
416 fLead =
new G4Material(name=
"Lead", z=82., a, density);
427 for(i=0;i<matTable->size();i++)
428 {
delete (*(matTable))[i]; }
431 for(i=0;i<elemTable->size();i++)
432 {
delete (*(elemTable))[i]; }
438 for(
int isp=0;isp<depth;isp++)
458 G4cerr <<
"Detector has not yet been constructed." <<
G4endl;
464 fArmRotation->
rotateY(fArmAngle);