100{
101
102
103
104
105 static G4bool fieldIsInitialized = false;
106 if ( !fieldIsInitialized ) {
109 = G4TransportationManager::GetTransportationManager()->
110 GetFieldManager();
111 fieldMgr-> SetDetectorField(myField);
112 fieldMgr-> CreateChordFinder(myField);
113 fieldIsInitialized = true;
114 }
115
116
117
118
120
121
122
123
124
125
126 G4Box* experimentalHall_box =
132 "expHall_P", 0, false,0);
135 experimentalHallVisAtt-> SetForceWireframe(true);
136 experimentalHall_log-> SetVisAttributes(experimentalHallVisAtt);
137
138
144
145 new G4PVPlacement(0,G4ThreeVector(), tracker_log,
"tracker_phys",
146 experimentalHall_log, false, 0);
149 tracker_logVisAtt->SetForceWireframe(true);
150 tracker_log->SetVisAttributes(tracker_logVisAtt);
151
152
153
154
162
163
168 trackerLayer_logVisAtt->SetForceWireframe(true);
169 trackerLayer_log->SetVisAttributes(trackerLayer_logVisAtt);
170
171
177
178 new G4PVPlacement(0,G4ThreeVector(), calorimeter_log,
"caloM_P",
179 experimentalHall_log, false,0);
182 calorimeter_logVisATT->SetForceWireframe(true);
183 calorimeter_log->SetVisAttributes(calorimeter_logVisATT);
184
185
186
187
195
196
201 caloLayer_logVisAtt->SetForceWireframe(true);
202 caloLayer_log->SetVisAttributes(caloLayer_logVisAtt);
203
204
205
212 G4double phi, x, y, z;
216 z = 0.*cm;
217 G4RotationMatrix rm;
218 rm.rotateZ(phi);
219 muoncounter_phys
221 muoncounter_log, "muoncounter_P",
222 experimentalHall_log,false,i);
223 }
226 muoncounter_logVisAtt->SetForceWireframe(true);
227 muoncounter_log->SetVisAttributes(muoncounter_logVisAtt);
228
229
230
231
232
234
235 G4String trackerSDname =
"/mydet/tracker";
237 SDman->AddNewDetector(trackerSD);
238 trackerLayer_log->SetSensitiveDetector(trackerSD);
239
240 G4String calorimeterSDname =
"/mydet/calorimeter";
242 G4String ROgeometryName =
"CalorimeterROGeom";
244 calRO->BuildROGeometry();
245 calorimeterSD->SetROgeometry(calRO);
246 SDman->AddNewDetector(calorimeterSD);
247 calorimeter_log->SetSensitiveDetector(calorimeterSD);
248
249 G4String muonSDname =
"/mydet/muon";
251 SDman->AddNewDetector(muonSD);
252 muoncounter_log->SetSensitiveDetector(muonSD);
253
254
255
256
257
258 return experimentalHall_phys;
259}