80   fHodoscope1Logical(0), fHodoscope2Logical(0),
 
   81   fWirePlane1Logical(0), fWirePlane2Logical(0),
 
   82   fCellLogical(0), fHadCalScintiLogical(0),
 
   85   fArmAngle(30.*
deg), fArmRotation(0), fSecondArmPhys(0)
 
  124     G4bool checkOverlaps = 
true;
 
  129       = 
new G4Box(
"worldBox",10.*
m,3.*
m,10.*
m);
 
  134                           false,0,checkOverlaps);
 
  139       = 
new G4Tubs(
"magneticTubs",0.,1.*
m,1.*
m,0.,360.*
deg);
 
  147     fieldRot->rotateX(90.*
deg);
 
  149                       "magneticPhysical",worldLogical,
 
  150                       false,0,checkOverlaps);
 
  158       = 
new G4Box(
"firstArmBox",1.5*
m,1.*
m,3.*
m);
 
  162                       "firstArmPhysical",worldLogical,
 
  163                       false,0,checkOverlaps);
 
  167       = 
new G4Box(
"secondArmBox",2.*
m,2.*
m,3.5*
m);
 
  174                           "fSecondArmPhys",worldLogical,
 
  175                           false,0,checkOverlaps);
 
  181       = 
new G4LogicalVolume(hodoscope1Solid,scintillator,
"hodoscope1Logical");
 
  182     for (
G4int i=0;i<15;i++)
 
  186                           "hodoscope1Physical",firstArmLogical,
 
  187                           false,i,checkOverlaps);
 
  195     for (
G4int i=0;i<5;i++)
 
  199                           "chamber1Physical",firstArmLogical,
 
  200                           false,i,checkOverlaps);
 
  205       = 
new G4Box(
"wirePlane1Box",1.*
m,30.*
cm,0.1*
mm);
 
  209                       "wirePlane1Physical",chamber1Logical,
 
  210                       false,0,checkOverlaps);
 
  216       = 
new G4LogicalVolume(hodoscope2Solid,scintillator,
"hodoscope2Logical");
 
  217     for (
G4int i=0;i<25;i++)
 
  221                           "hodoscope2Physical",secondArmLogical,
 
  222                           false,i,checkOverlaps);
 
  227       = 
new G4Box(
"chamber2Box",1.5*
m,30.*
cm,1.*
cm);
 
  230     for (
G4int i=0;i<5;i++)
 
  234                           "chamber2Physical",secondArmLogical,
 
  235                           false,i,checkOverlaps);
 
  240       = 
new G4Box(
"wirePlane2Box",1.5*
m,30.*
cm,0.1*
mm);
 
  244                       "wirePlane2Physical",chamber2Logical,
 
  245                       false,0,checkOverlaps);
 
  249       = 
new G4Box(
"EMcalorimeterBox",1.5*
m,30.*
cm,15.*
cm);
 
  253                       "EMcalorimeterPhysical",secondArmLogical,
 
  254                       false,0,checkOverlaps);
 
  267       = 
new G4Box(
"HadCalorimeterBox",1.5*
m,30.*
cm,50.*
cm);
 
  269       = 
new G4LogicalVolume(hadCalorimeterSolid,lead,
"HadCalorimeterLogical");
 
  271                       "HadCalorimeterPhysical",secondArmLogical,
 
  272                       false,0,checkOverlaps);
 
  276       = 
new G4Box(
"HadCalColumnBox",15.*
cm,30.*
cm,50.*
cm);
 
  279     new G4PVReplica(
"HadCalColumnPhysical",HadCalColumnLogical,
 
  280                     hadCalorimeterLogical,
kXAxis,10,30.*
cm);
 
  287     new G4PVReplica(
"HadCalCellPhysical",HadCalCellLogical,
 
  288                     HadCalColumnLogical,
kYAxis,2,30.*
cm);
 
  292       = 
new G4Box(
"HadCalLayerBox",15.*
cm,15.*
cm,2.5*
cm);
 
  295     new G4PVReplica(
"HadCalLayerPhysical",HadCalLayerLogical,
 
  300       = 
new G4Box(
"HadCalScintiBox",15.*
cm,15.*
cm,0.5*
cm);
 
  303                             "HadCalScintiLogical");
 
  305                       "HadCalScintiPhysical",HadCalLayerLogical,
 
  306                       false,0,checkOverlaps);
 
  364     return worldPhysical;
 
  410     G4bool forceToAllDaughters = 
true;
 
  463         G4cerr << 
"Detector has not yet been constructed." << 
G4endl;
 
  491                                   "Set rotation angle of the second arm.");
 
  493     armAngleCmd.
SetRange(
"angle>=0. && angle<180.");
 
void GeometryHasBeenModified(G4bool prop=true)
Definition of the B5HadCalorimeterSD class. 
G4GenericMessenger * fMessenger
Definition of the B5CellParameterisation class. 
G4Material * FindOrBuildMaterial(const G4String &name, G4bool isotopes=true, G4bool warning=false)
void SetArmAngle(G4double val)
Definition of the B5DetectorConstruction class. 
Definition of the B5DriftChamberSD class. 
CLHEP::Hep3Vector G4ThreeVector
G4LogicalVolume * fWirePlane2Logical
CLHEP::HepRotation G4RotationMatrix
G4bool SetDetectorField(G4Field *detectorField)
This class is generic messenger. 
static G4Material * GetMaterial(const G4String &name, G4bool warning=true)
G4LogicalVolume * fHodoscope1Logical
void SetVisibility(G4bool)
void SetUserLimits(G4UserLimits *pULimits)
virtual ~B5DetectorConstruction()
static G4MaterialTable * GetMaterialTable()
Drift chamber sensitive detector. 
Definition of the B5EmCalorimeterSD class. 
G4LogicalVolume * fMagneticLogical
Command & DeclareMethodWithUnit(const G4String &name, const G4String &defaultUnit, const G4AnyMethod &fun, const G4String &doc="")
G4VPhysicalVolume * fSecondArmPhys
static G4NistManager * Instance()
void ConstructMaterials()
void SetFieldManager(G4FieldManager *pFieldMgr, G4bool forceToAllDaughters)
G4LogicalVolume * fCellLogical
Command & SetDefaultValue(const G4String &)
virtual G4VPhysicalVolume * Construct()
G4GLOB_DLL std::ostream G4cout
G4LogicalVolume * fHadCalScintiLogical
EM Calorimeter cell parameterisation. 
virtual void ConstructSDandField()
static G4ThreadLocal B5MagneticField * fMagneticField
void SetTranslation(const G4ThreeVector &v)
G4RotationMatrix * fArmRotation
static G4ThreadLocal G4FieldManager * fFieldMgr
Command & SetRange(const G4String &range)
G4LogicalVolume * fWirePlane1Logical
void AddNewDetector(G4VSensitiveDetector *aSD)
static G4RunManager * GetRunManager()
Definition of the B5MagneticField class. 
Definition of the B5HodoscopeSD class. 
G4LogicalVolume * fHodoscope2Logical
static G4SDManager * GetSDMpointer()
Hodoscope sensitive detector. 
Command & SetParameterName(const G4String &, G4bool, G4bool=false)
void CreateChordFinder(G4MagneticField *detectorMagField)
EM calorimeter sensitive detector. 
void SetVisAttributes(const G4VisAttributes *pVA)
void SetSensitiveDetector(G4VSensitiveDetector *pSDetector)
Hadron calorimeter sensitive detector. 
G4GLOB_DLL std::ostream G4cerr
std::vector< G4VisAttributes * > fVisAttributes