00001 /* BDSIM code for LW Calorimeter. Version 1.0 00002 Author: John Carter, Royal Holloway, Univ. of London. 00003 Last modified 26.7.2004 00004 Copyright (c) 2004 by J.C.Carter. ALL RIGHTS RESERVED. 00005 */ 00006 #ifndef BDSLWCalorimeter_h 00007 #define BDSLWCalorimeter_h 1 00008 00009 #include "globals.hh" 00010 #include "BDSAcceleratorComponent.hh" 00011 00012 class G4Box; 00013 class G4FieldManager; 00014 class G4LogicalVolume; 00015 class G4Tubs; 00016 class G4UserLimits; 00017 class G4VisAttributes; 00018 class G4VPhysicalVolume; 00019 00020 class BDSLWCalorimeter :public BDSAcceleratorComponent 00021 { 00022 public: 00023 BDSLWCalorimeter(G4String& aName,G4double aLength, G4double aBpRad, G4String aTunnelMaterial=""); 00024 ~BDSLWCalorimeter(); 00025 void BuildBeampipe(G4double aLength); 00026 void BuildCal(G4double aLength); 00027 00028 protected: 00029 G4LogicalVolume* itsBeampipeLogicalVolume; 00030 G4LogicalVolume* itsInnerBPLogicalVolume; 00031 G4VPhysicalVolume* itsPhysiInner; 00032 G4VPhysicalVolume* itsPhysiComp; 00033 G4LogicalVolume* itsLWCalLogicalVolume; 00034 G4UserLimits* itsBeampipeUserLimits; 00035 G4FieldManager* itsBPFieldMgr; 00036 00037 private: 00038 G4Tubs* itsBPTube; 00039 G4Tubs* itsInnerBPTube; 00040 G4Box* itsLWCal; 00041 G4VPhysicalVolume* itsPhysiLWCal; 00042 G4VisAttributes* SetVisAttributes(); 00043 void LWCalorimeterLogicalVolume(); 00044 00045 // field related objects: 00046 G4VisAttributes* itsVisAttributes; 00047 }; 00048 00049 #endif