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 #include "BDSTiltOffset.hh" 00012 00013 class G4Box; 00014 class G4FieldManager; 00015 class G4LogicalVolume; 00016 class G4Tubs; 00017 class G4UserLimits; 00018 class G4VPhysicalVolume; 00019 00020 class BDSLWCalorimeter :public BDSAcceleratorComponent 00021 { 00022 public: 00023 BDSLWCalorimeter(G4String name, 00024 G4double length, 00025 BDSBeamPipeInfo* beamPipeInfo, 00026 BDSTiltOffset tiltOffset = BDSTiltOffset()); 00027 ~BDSLWCalorimeter(); 00028 00029 protected: 00030 virtual void Build(); 00031 00032 G4LogicalVolume* itsBeampipeLogicalVolume; 00033 G4LogicalVolume* itsInnerBPLogicalVolume; 00034 G4VPhysicalVolume* itsPhysiInner; 00035 G4VPhysicalVolume* itsPhysiComp; 00036 G4LogicalVolume* itsLWCalLogicalVolume; 00037 G4UserLimits* itsBeampipeUserLimits; 00038 G4FieldManager* itsBPFieldMgr; 00039 00040 private: 00041 virtual void SetVisAttributes(); 00042 virtual void BuildMarkerLogicalVolume(); 00043 void BuildBeampipe(); 00044 void BuildCal(G4double aLength); 00045 00046 G4Tubs* itsBPTube; 00047 G4Tubs* itsInnerBPTube; 00048 G4Box* itsLWCal; 00049 G4VPhysicalVolume* itsPhysiLWCal; 00050 }; 00051 00052 #endif