00001 //---------------------------------------------------------------------------// 00002 // BOOST --- BESIII Object_Oreiented Simulation Tool // 00003 //---------------------------------------------------------------------------// 00004 //Descpirtion: EMC detector 00005 //Author: Fu Chengdong 00006 //Created: Sep 4, 2003 00007 //Comment: 00008 //---------------------------------------------------------------------------// 00009 // 00010 #ifndef ExtBesCrystalParameterisation_H 00011 #define ExtBhesCrystalParameterisation_H 1 00012 00013 #include "globals.hh" 00014 #include "G4VPVParameterisation.hh" 00015 00016 //class G4VphysicalVolume; 00017 //class G4Trap; 00018 //class G4VSolid; 00019 00020 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 00021 class ExtBesEmcGeometry; 00022 00023 class ExtBesCrystalParameterisation : public G4VPVParameterisation 00024 { 00025 public: 00026 ExtBesCrystalParameterisation( 00027 const G4int , 00028 const G4int , 00029 const G4int , 00030 ExtBesEmcGeometry*, 00031 const G4int); 00032 virtual ~ExtBesCrystalParameterisation(); 00033 void ComputeTransformation ( 00034 const G4int , 00035 G4VPhysicalVolume* )const; 00036 void ComputeDimensions (G4Trap & , const G4int , 00037 const G4VPhysicalVolume* )const; 00038 G4Material* ComputeMaterial(const G4int,G4VPhysicalVolume *); 00039 G4VSolid* ComputeSolid(const G4int,G4VPhysicalVolume *); 00040 void ComputeIDAndSide(const G4VPhysicalVolume*)const; 00041 inline void SetVerboseLevel(G4int val){fVerboseLevel=val;}; 00042 private: 00043 G4int fCrystalID; 00044 G4int fVerboseLevel; 00045 G4int fStartID; 00046 G4int fAllCrystals; 00047 G4bool fFlagLeft; 00048 ExtBesEmcGeometry* fBesEmcGeometry; 00049 }; 00050 00051 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 00052 00053 #endif