00001 #ifndef ExtBesEmcEndGeometry_h 00002 #define ExtBesEmcEndGeometry_h 1 00003 00004 #include "globals.hh" 00005 #include "G4ThreeVector.hh" 00006 class ExtBesEmcConstruction; 00007 00008 class ExtBesEmcEndGeometry 00009 { 00010 public: 00011 ExtBesEmcEndGeometry(); 00012 ~ExtBesEmcEndGeometry(); 00013 friend class ExtBesEmcConstruction; 00014 00015 public: 00016 void ReadParameters(); 00017 void ComputeParameters(); 00018 void Exchange(G4int cry1, G4int cry2); 00019 void ReflectX(); 00020 void ModifyForCasing(G4ThreeVector pos[8], G4int CryNb); 00021 G4ThreeVector ComputeDimAndPos(const G4int, const G4int, const G4int); 00022 00023 public: 00024 inline G4int GetCryNumInOneLayer(G4int num){ return cryNumInOneLayer[num]; } 00025 00026 private: 00027 G4double WorldRmin1; 00028 G4double WorldRmax1; 00029 G4double WorldRmin2; 00030 G4double WorldRmax2; 00031 G4double WorldDz; 00032 G4double WorldZPosition; 00033 00034 G4double fTyvekThickness; 00035 G4double fAlThickness; 00036 G4double fMylarThickness; 00037 G4double totalThickness; 00038 G4double CrystalLength; 00039 00040 private: 00041 G4double param[35][24]; 00042 G4double penta[5][6]; 00043 G4int cryNumInOneLayer[6]; 00044 G4int pentaInOneSector[5]; 00045 G4ThreeVector fPnt[35][8]; //8 point of one crystal 00046 G4ThreeVector fPnt1[35][8]; 00047 G4ThreeVector cryPoint[8]; 00048 }; 00049 00050 #endif