00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef SimpleGeometryParameter_H
00014 #define SimpleGeometryParameter_H
00015
00016 #include "myglobals.hh"
00017 #include "G4ThreeVector.hh"
00018
00019 #include "MyVGeometryParameter.hh"
00020
00021 #include <vector>
00022 #include <iostream>
00023
00024 class SimpleGeometryParameter : public MyVGeometryParameter
00025 {
00026
00027 public:
00028 SimpleGeometryParameter(G4String name, G4String opt = "");
00029 virtual ~SimpleGeometryParameter(void);
00030
00031 virtual void InitFromFile(G4String);
00032
00033 virtual void Calculate();
00034
00035 virtual void Dump();
00036
00037
00038 int GetValue(G4String);
00039
00040 void Preset();
00041
00042 bool CheckInfo();
00043
00044 void DumpInfo(void);
00045
00046 private:
00047
00048 void ReSetVis();
00049
00050 public:
00051
00052
00053
00054 G4int get_VolIndex(G4String name) {
00055 int index = -1;
00056 for ( int i = 0; i < VolNo; i++ ){
00057 if ( Name[i] == name ){
00058 index = i;
00059 break;
00060 }
00061 }
00062 return index;
00063 }
00064 G4int get_VolNo() { return VolNo; }
00065 G4double get_PosX(G4int VolId, G4int j = 0) {if( check_VolId(VolId) ) return Pos[VolId][j].x(); else return 0;}
00066 G4double get_PosY(G4int VolId, G4int j = 0) {if( check_VolId(VolId) ) return Pos[VolId][j].y(); else return 0;}
00067 G4double get_PosZ(G4int VolId, G4int j = 0) {if( check_VolId(VolId) ) return Pos[VolId][j].z(); else return 0;}
00068 G4String get_name(G4int VolId) {if( check_VolId(VolId) ) return Name[VolId]; else return "";}
00069 G4String get_SDName(G4int VolId) {if( check_VolId(VolId) ) return SDName[VolId]; else return "";}
00070 G4String get_MotherName(G4int VolId) {if( check_VolId(VolId) ) return MotherName[VolId]; else return "";}
00071 G4String get_material(G4int VolId) {if( check_VolId(VolId) ) return Material[VolId]; else return "";}
00072 G4int get_SRepNo(G4int VolId) {if(check_VolId(VolId)) return SRepNo[VolId]; else return 0;}
00073 G4int get_RepNo(G4int VolId) {if(check_VolId(VolId)) return RepNo[VolId]; else return 0;}
00074 G4String get_SolidType(G4int VolId) {if(check_VolId(VolId)) return SolidType[VolId]; else return "";}
00075 G4int get_SolidIndex(G4int VolId) {if(check_VolId(VolId)) return SolidIndex[VolId]; else return 0;}
00076 G4double get_Ephi(G4int VolId, G4int j = 0) {if( check_VolId(VolId) ) return Ephi[VolId][j]; else return 0;}
00077 G4double get_Etheta(G4int VolId, G4int j = 0) {if( check_VolId(VolId) ) return Etheta[VolId][j]; else return 0;}
00078 G4double get_Epsi(G4int VolId, G4int j = 0) {if( check_VolId(VolId) ) return Epsi[VolId][j]; else return 0;}
00079 G4bool get_SolidBoolean(G4int VolId) {if( check_VolId(VolId) ) return SolidBoolean[VolId]; else return false;}
00080
00081
00082 G4int get_BoxNo() {return BoxNo;}
00083 G4double get_Box_X(G4int BoxId, G4int j = 0) {if( check_BoxId(BoxId) ) return Box_X[BoxId][j]; else return 0;}
00084 G4double get_Box_Y(G4int BoxId, G4int j = 0) {if( check_BoxId(BoxId) ) return Box_Y[BoxId][j]; else return 0;}
00085 G4double get_Box_Z(G4int BoxId, G4int j = 0) {if( check_BoxId(BoxId) ) return Box_Z[BoxId][j]; else return 0;}
00086
00087
00088 G4int get_EllipticalTubeNo() {return EllipticalTubeNo;}
00089 G4double get_EllipticalTube_X(G4int EllipticalTubeId, G4int j = 0) {if( check_EllipticalTubeId(EllipticalTubeId) ) return EllipticalTube_X[EllipticalTubeId][j]; else return 0;}
00090 G4double get_EllipticalTube_Y(G4int EllipticalTubeId, G4int j = 0) {if( check_EllipticalTubeId(EllipticalTubeId) ) return EllipticalTube_Y[EllipticalTubeId][j]; else return 0;}
00091 G4double get_EllipticalTube_Z(G4int EllipticalTubeId, G4int j = 0) {if( check_EllipticalTubeId(EllipticalTubeId) ) return EllipticalTube_Z[EllipticalTubeId][j]; else return 0;}
00092
00093
00094 G4int get_TubsNo() {return TubsNo;}
00095 G4double get_Tubs_RMax(G4int TubsId, G4int j = 0) {if( check_TubsId(TubsId) ) return Tubs_RMax[TubsId][j]; else return 0;}
00096 G4double get_Tubs_RMin(G4int TubsId, G4int j = 0) {if( check_TubsId(TubsId) ) return Tubs_RMin[TubsId][j]; else return 0;}
00097 G4double get_Tubs_Length(G4int TubsId, G4int j = 0) {if( check_TubsId(TubsId) ) return Tubs_Length[TubsId][j]; else return 0;}
00098 G4double get_Tubs_StartAng(G4int TubsId, G4int j = 0) {if( check_TubsId(TubsId) ) return Tubs_StartAng[TubsId][j]; else return 0;}
00099 G4double get_Tubs_SpanAng(G4int TubsId, G4int j = 0) {if( check_TubsId(TubsId) ) return Tubs_SpanAng[TubsId][j]; else return 0;}
00100
00101
00102 G4int get_TorusNo() {return TorusNo;}
00103 G4double get_Torus_RMax(G4int TorusId, G4int j = 0) {if( check_TorusId(TorusId) ) return Torus_RMax[TorusId][j]; else return 0;}
00104 G4double get_Torus_RMin(G4int TorusId, G4int j = 0) {if( check_TorusId(TorusId) ) return Torus_RMin[TorusId][j]; else return 0;}
00105 G4double get_Torus_Rtor(G4int TorusId, G4int j = 0) {if( check_TorusId(TorusId) ) return Torus_Rtor[TorusId][j]; else return 0;}
00106 G4double get_Torus_StartAng(G4int TorusId, G4int j = 0) {if( check_TorusId(TorusId) ) return Torus_StartAng[TorusId][j]; else return 0;}
00107 G4double get_Torus_SpanAng(G4int TorusId, G4int j = 0) {if( check_TorusId(TorusId) ) return Torus_SpanAng[TorusId][j]; else return 0;}
00108
00109
00110 G4int get_SphereNo() {return SphereNo;}
00111 G4double get_Sphere_RMax(G4int SphereId, G4int j = 0) {if( check_SphereId(SphereId) ) return Sphere_RMax[SphereId][j]; else return 0;}
00112 G4double get_Sphere_RMin(G4int SphereId, G4int j = 0) {if( check_SphereId(SphereId) ) return Sphere_RMin[SphereId][j]; else return 0;}
00113 G4double get_Sphere_StartPhi(G4int SphereId, G4int j = 0) {if( check_SphereId(SphereId) ) return Sphere_StartPhi[SphereId][j]; else return 0;}
00114 G4double get_Sphere_SpanPhi(G4int SphereId, G4int j = 0) {if( check_SphereId(SphereId) ) return Sphere_SpanPhi[SphereId][j]; else return 0;}
00115 G4double get_Sphere_StartTheta(G4int SphereId, G4int j = 0) {if( check_SphereId(SphereId) ) return Sphere_StartTheta[SphereId][j]; else return 0;}
00116 G4double get_Sphere_SpanTheta(G4int SphereId, G4int j = 0) {if( check_SphereId(SphereId) ) return Sphere_SpanTheta[SphereId][j]; else return 0;}
00117
00118
00119 G4int get_HypeNo() {return HypeNo;}
00120 G4double get_Hype_innerRadius(G4int HypeId, G4int j = 0) {if( check_HypeId(HypeId) ) return Hype_innerRadius[HypeId][j]; else return 0;}
00121 G4double get_Hype_outerRadius(G4int HypeId, G4int j = 0) {if( check_HypeId(HypeId) ) return Hype_outerRadius[HypeId][j]; else return 0;}
00122 G4double get_Hype_innerStereo(G4int HypeId, G4int j = 0) {if( check_HypeId(HypeId) ) return Hype_innerStereo[HypeId][j]; else return 0;}
00123 G4double get_Hype_outerStereo(G4int HypeId, G4int j = 0) {if( check_HypeId(HypeId) ) return Hype_outerStereo[HypeId][j]; else return 0;}
00124 G4double get_Hype_Length(G4int HypeId, G4int j = 0) {if( check_HypeId(HypeId) ) return Hype_Length[HypeId][j]; else return 0;}
00125
00126
00127 G4int get_TwistedTubsNo() {return TwistedTubsNo;}
00128 G4double get_TwistedTubs_twistedangle(G4int TwistedTubsId, G4int j = 0) {if( check_TwistedTubsId(TwistedTubsId) ) return TwistedTubs_twistedangle[TwistedTubsId][j]; else return 0;}
00129 G4double get_TwistedTubs_endinnerrad(G4int TwistedTubsId, G4int j = 0) {if( check_TwistedTubsId(TwistedTubsId) ) return TwistedTubs_endinnerrad[TwistedTubsId][j]; else return 0;}
00130 G4double get_TwistedTubs_endouterrad(G4int TwistedTubsId, G4int j = 0) {if( check_TwistedTubsId(TwistedTubsId) ) return TwistedTubs_endouterrad[TwistedTubsId][j]; else return 0;}
00131 G4double get_TwistedTubs_Length(G4int TwistedTubsId, G4int j = 0) {if( check_TwistedTubsId(TwistedTubsId) ) return TwistedTubs_Length[TwistedTubsId][j]; else return 0;}
00132 G4double get_TwistedTubs_dphi(G4int TwistedTubsId, G4int j = 0) {if( check_TwistedTubsId(TwistedTubsId) ) return TwistedTubs_dphi[TwistedTubsId][j]; else return 0;}
00133
00134
00135 G4int get_ConsNo() {return ConsNo;}
00136 G4double get_Cons_RMax1(G4int ConsId, G4int j = 0) {if( check_ConsId(ConsId) ) return Cons_RMax1[ConsId][j]; else return 0;}
00137 G4double get_Cons_RMin1(G4int ConsId, G4int j = 0) {if( check_ConsId(ConsId) ) return Cons_RMin1[ConsId][j]; else return 0;}
00138 G4double get_Cons_RMax2(G4int ConsId, G4int j = 0) {if( check_ConsId(ConsId) ) return Cons_RMax2[ConsId][j]; else return 0;}
00139 G4double get_Cons_RMin2(G4int ConsId, G4int j = 0) {if( check_ConsId(ConsId) ) return Cons_RMin2[ConsId][j]; else return 0;}
00140 G4double get_Cons_Length(G4int ConsId, G4int j = 0) {if( check_ConsId(ConsId) ) return Cons_Length[ConsId][j]; else return 0;}
00141 G4double get_Cons_StartAng(G4int ConsId, G4int j = 0) {if( check_ConsId(ConsId) ) return Cons_StartAng[ConsId][j]; else return 0;}
00142 G4double get_Cons_SpanAng(G4int ConsId, G4int j = 0) {if( check_ConsId(ConsId) ) return Cons_SpanAng[ConsId][j]; else return 0;}
00143
00144
00145 G4int get_PolyconeNo() {return PolyconeNo;}
00146 G4int get_Polycone_numZ(G4int PolyconeId, G4int j = 0) {if( check_PolyconeId(PolyconeId) ) return Polycone_numZ[PolyconeId]; else return 0;}
00147 G4double get_Polycone_RMax(G4int PolyconeId,G4int i, G4int j = 0) {if( check_PolyconeId(PolyconeId) && i < Polycone_numZ[PolyconeId] ) return Polycone_RMax[PolyconeId][i][j]; else return 0;}
00148 G4double get_Polycone_RMin(G4int PolyconeId,G4int i, G4int j = 0) {if( check_PolyconeId(PolyconeId) && i < Polycone_numZ[PolyconeId] ) return Polycone_RMin[PolyconeId][i][j]; else return 0;}
00149 G4double get_Polycone_Z(G4int PolyconeId,G4int i, G4int j = 0) {if( check_PolyconeId(PolyconeId) && i < Polycone_numZ[PolyconeId]) return Polycone_Z[PolyconeId][i][j]; else return 0;}
00150 G4double get_Polycone_StartAng(G4int PolyconeId, G4int j = 0) {if( check_PolyconeId(PolyconeId) ) return Polycone_StartAng[PolyconeId][j]; else return 0;}
00151 G4double get_Polycone_SpanAng(G4int PolyconeId, G4int j = 0) {if( check_PolyconeId(PolyconeId) ) return Polycone_SpanAng[PolyconeId][j]; else return 0;}
00152
00153
00154 G4int get_ExtrudedSolidNo() {return ExtrudedSolidNo;}
00155 G4int get_ExtrudedSolid_numZ(G4int ExtrudedSolidId, G4int j = 0) {if( check_ExtrudedSolidId(ExtrudedSolidId) ) return ExtrudedSolid_numZ[ExtrudedSolidId]; else return 0;}
00156 G4int get_ExtrudedSolid_numP(G4int ExtrudedSolidId, G4int j = 0) {if( check_ExtrudedSolidId(ExtrudedSolidId) ) return ExtrudedSolid_numP[ExtrudedSolidId]; else return 0;}
00157 G4double get_ExtrudedSolid_X(G4int ExtrudedSolidId,G4int i, G4int j = 0) {if( check_ExtrudedSolidId(ExtrudedSolidId) && i < ExtrudedSolid_numP[ExtrudedSolidId] ) return ExtrudedSolid_X[ExtrudedSolidId][i][j]; else return 0;}
00158 G4double get_ExtrudedSolid_Y(G4int ExtrudedSolidId,G4int i, G4int j = 0) {if( check_ExtrudedSolidId(ExtrudedSolidId) && i < ExtrudedSolid_numP[ExtrudedSolidId] ) return ExtrudedSolid_Y[ExtrudedSolidId][i][j]; else return 0;}
00159 G4double get_ExtrudedSolid_Z(G4int ExtrudedSolidId,G4int i, G4int j = 0) {if( check_ExtrudedSolidId(ExtrudedSolidId) && i < ExtrudedSolid_numZ[ExtrudedSolidId]) return ExtrudedSolid_Z[ExtrudedSolidId][i][j]; else return 0;}
00160 G4double get_ExtrudedSolid_X0(G4int ExtrudedSolidId,G4int i, G4int j = 0) {if( check_ExtrudedSolidId(ExtrudedSolidId) && i < ExtrudedSolid_numZ[ExtrudedSolidId]) return ExtrudedSolid_X0[ExtrudedSolidId][i][j]; else return 0;}
00161 G4double get_ExtrudedSolid_Y0(G4int ExtrudedSolidId,G4int i, G4int j = 0) {if( check_ExtrudedSolidId(ExtrudedSolidId) && i < ExtrudedSolid_numZ[ExtrudedSolidId]) return ExtrudedSolid_Y0[ExtrudedSolidId][i][j]; else return 0;}
00162 G4double get_ExtrudedSolid_Scale(G4int ExtrudedSolidId,G4int i, G4int j = 0) {if( check_ExtrudedSolidId(ExtrudedSolidId) && i < ExtrudedSolid_numZ[ExtrudedSolidId]) return ExtrudedSolid_Scale[ExtrudedSolidId][i][j]; else return 0;}
00163
00164
00165 G4String get_BooleanSolid_type(G4int BooleanSolidId) {if( check_BooleanSolidId(BooleanSolidId) ) return BooleanSolid_type[BooleanSolidId]; else return "";}
00166 G4String get_BooleanSolid_sol1(G4int BooleanSolidId) {if( check_BooleanSolidId(BooleanSolidId) ) return BooleanSolid_sol1[BooleanSolidId]; else return "";}
00167 G4String get_BooleanSolid_sol2(G4int BooleanSolidId) {if( check_BooleanSolidId(BooleanSolidId) ) return BooleanSolid_sol2[BooleanSolidId]; else return "";}
00168 G4double get_BooleanSolid_Ephi(G4int BooleanSolidId, G4int j = 0) {if( check_BooleanSolidId(BooleanSolidId) ) return BooleanSolid_Ephi[BooleanSolidId][j]; else return 0;}
00169 G4double get_BooleanSolid_Etheta(G4int BooleanSolidId, G4int j = 0) {if( check_BooleanSolidId(BooleanSolidId) ) return BooleanSolid_Etheta[BooleanSolidId][j]; else return 0;}
00170 G4double get_BooleanSolid_Epsi(G4int BooleanSolidId, G4int j = 0) {if( check_BooleanSolidId(BooleanSolidId) ) return BooleanSolid_Epsi[BooleanSolidId][j]; else return 0;}
00171 G4double get_BooleanSolid_PosX(G4int BooleanSolidId, G4int j = 0) {if( check_BooleanSolidId(BooleanSolidId) ) return BooleanSolid_Pos[BooleanSolidId][j].x(); else return 0;}
00172 G4double get_BooleanSolid_PosY(G4int BooleanSolidId, G4int j = 0) {if( check_BooleanSolidId(BooleanSolidId) ) return BooleanSolid_Pos[BooleanSolidId][j].y(); else return 0;}
00173 G4double get_BooleanSolid_PosZ(G4int BooleanSolidId, G4int j = 0) {if( check_BooleanSolidId(BooleanSolidId) ) return BooleanSolid_Pos[BooleanSolidId][j].z(); else return 0;}
00174
00175
00176 bool get_vis(G4int VolId){if( check_VolId(VolId) ) return vVis[VolId]; else return 0;}
00177 G4double get_r(G4int VolId){if( check_VolId(VolId) ) return vR[VolId]; else return 0;}
00178 G4double get_g(G4int VolId){if( check_VolId(VolId) ) return vG[VolId]; else return 0;}
00179 G4double get_b(G4int VolId){if( check_VolId(VolId) ) return vB[VolId]; else return 0;}
00180 G4double get_t(G4int VolId){if( check_VolId(VolId) ) return vT[VolId]; else return 0;}
00181
00182
00183
00184 void set_PosX(G4String type, G4int i,G4double val, G4int j = 0) { int k = get_index(type, i); Pos[k][j].setX(val);}
00185 void set_PosY(G4String type, G4int i,G4double val, G4int j = 0) { int k = get_index(type, i); Pos[k][j].setY(val);}
00186 void set_PosZ(G4String type, G4int i,G4double val, G4int j = 0) { int k = get_index(type, i); Pos[k][j].setZ(val);}
00187 void set_name(G4String type, G4int i,G4String val) { int k = get_index(type, i); Name[k] = val;}
00188 void set_SDName(G4String type, G4int i,G4String val) { int k = get_index(type, i); SDName[k] = val;}
00189 void set_MotherName(G4String type, G4int i,G4String val) { int k = get_index(type, i); MotherName[k] = val;}
00190 void set_material(G4String type, G4int i,G4String val) { int k = get_index(type, i); Material[k] = val;}
00191 void set_SRepNo(G4String type, G4int i,G4int val) { int k = get_index(type, i); SRepNo[k] = val;}
00192 void set_RepNo(G4String type, G4int i,G4int val) { int k = get_index(type, i); RepNo[k] = val;}
00193 void set_Ephi(G4String type, G4int i, G4double val, G4int j = 0) { int k = get_index(type, i); Ephi[k][j] = val;}
00194 void set_Etheta(G4String type, G4int i, G4double val, G4int j = 0) { int k = get_index(type, i); Etheta[k][j] = val;}
00195 void set_Epsi(G4String type, G4int i, G4double val, G4int j = 0) { int k = get_index(type, i); Epsi[k][j] = val;}
00196 void set_SolidBoolean(G4String type, G4int i, G4int val) { int k = get_index(type, i); SolidBoolean[k] = val;}
00197
00198 void set_name(G4String name,G4String val) { int k = get_VolIndex(name); Name[k] = val;}
00199 void set_SDName(G4String name,G4String val) { int k = get_VolIndex(name); SDName[k] = val;}
00200 void set_MotherName(G4String name,G4String val) { int k = get_VolIndex(name); MotherName[k] = val;}
00201 void set_material(G4String name,G4String val) { int k = get_VolIndex(name); Material[k] = val;}
00202 void set_SRepNo(G4String name,G4int val) { int k = get_VolIndex(name); SRepNo[k] = val;}
00203 void set_RepNo(G4String name,G4int val) { int k = get_VolIndex(name); RepNo[k] = val;}
00204 void set_SolidBoolean(G4String name, G4int val) { int k = get_VolIndex(name); SolidBoolean[k] = val;}
00205 void set_PosX(G4String name,G4double val, G4int j = 0) { int k = get_VolIndex(name); Pos[k][j].setX(val);}
00206 void set_PosY(G4String name,G4double val, G4int j = 0) { int k = get_VolIndex(name); Pos[k][j].setY(val);}
00207 void set_PosZ(G4String name,G4double val, G4int j = 0) { int k = get_VolIndex(name); Pos[k][j].setZ(val);}
00208 void set_Ephi(G4String name, G4double val, G4int j = 0) { int k = get_VolIndex(name); Ephi[k][j] = val;}
00209 void set_Etheta(G4String name, G4double val, G4int j = 0) { int k = get_VolIndex(name); Etheta[k][j] = val;}
00210 void set_Epsi(G4String name, G4double val, G4int j = 0) { int k = get_VolIndex(name); Epsi[k][j] = val;}
00211
00212
00213 void set_Box_X(G4int i,G4double val, G4int j = 0) { Box_X[i][j] = val;}
00214 void set_Box_Y(G4int i,G4double val, G4int j = 0) { Box_Y[i][j] = val;}
00215 void set_Box_Z(G4int i,G4double val, G4int j = 0) { Box_Z[i][j] = val;}
00216
00217 void set_Box_X(G4String name,G4double val, G4int j = 0) {int i = get_SolidIndex(get_VolIndex(name)); Box_X[i][j] = val;}
00218 void set_Box_Y(G4String name,G4double val, G4int j = 0) {int i = get_SolidIndex(get_VolIndex(name)); Box_Y[i][j] = val;}
00219 void set_Box_Z(G4String name,G4double val, G4int j = 0) {int i = get_SolidIndex(get_VolIndex(name)); Box_Z[i][j] = val;}
00220
00221
00222 void set_EllipticalTube_X(G4int i,G4double val, G4int j = 0) { EllipticalTube_X[i][j] = val;}
00223 void set_EllipticalTube_Y(G4int i,G4double val, G4int j = 0) { EllipticalTube_Y[i][j] = val;}
00224 void set_EllipticalTube_Z(G4int i,G4double val, G4int j = 0) { EllipticalTube_Z[i][j] = val;}
00225
00226 void set_EllipticalTube_X(G4String name,G4double val, G4int j = 0) {int i = get_SolidIndex(get_VolIndex(name)); EllipticalTube_X[i][j] = val;}
00227 void set_EllipticalTube_Y(G4String name,G4double val, G4int j = 0) {int i = get_SolidIndex(get_VolIndex(name)); EllipticalTube_Y[i][j] = val;}
00228 void set_EllipticalTube_Z(G4String name,G4double val, G4int j = 0) {int i = get_SolidIndex(get_VolIndex(name)); EllipticalTube_Z[i][j] = val;}
00229
00230
00231 void set_Tubs_RMax(G4int i,G4double val, G4int j = 0) { Tubs_RMax[i][j] = val;}
00232 void set_Tubs_RMin(G4int i,G4double val, G4int j = 0) { Tubs_RMin[i][j] = val;}
00233 void set_Tubs_Length(G4int i,G4double val, G4int j = 0) { Tubs_Length[i][j] = val;}
00234 void set_Tubs_StartAng(G4int i,G4double val, G4int j = 0) { Tubs_StartAng[i][j] = val;}
00235 void set_Tubs_SpanAng(G4int i,G4double val, G4int j = 0) { Tubs_SpanAng[i][j] = val;}
00236
00237 void set_Tubs_RMax(G4String name,G4double val, G4int j = 0) {int i = get_SolidIndex(get_VolIndex(name)); Tubs_RMax[i][j] = val;}
00238 void set_Tubs_RMin(G4String name,G4double val, G4int j = 0) {int i = get_SolidIndex(get_VolIndex(name)); Tubs_RMin[i][j] = val;}
00239 void set_Tubs_Length(G4String name,G4double val, G4int j = 0) {int i = get_SolidIndex(get_VolIndex(name)); Tubs_Length[i][j] = val;}
00240 void set_Tubs_StartAng(G4String name,G4double val, G4int j = 0) {int i = get_SolidIndex(get_VolIndex(name)); Tubs_StartAng[i][j] = val;}
00241 void set_Tubs_SpanAng(G4String name,G4double val, G4int j = 0) {int i = get_SolidIndex(get_VolIndex(name)); Tubs_SpanAng[i][j] = val;}
00242
00243
00244 void set_Torus_RMax(G4int i,G4double val, G4int j = 0) { Torus_RMax[i][j] = val;}
00245 void set_Torus_RMin(G4int i,G4double val, G4int j = 0) { Torus_RMin[i][j] = val;}
00246 void set_Torus_Rtor(G4int i,G4double val, G4int j = 0) { Torus_Rtor[i][j] = val;}
00247 void set_Torus_StartAng(G4int i,G4double val, G4int j = 0) { Torus_StartAng[i][j] = val;}
00248 void set_Torus_SpanAng(G4int i,G4double val, G4int j = 0) { Torus_SpanAng[i][j] = val;}
00249
00250 void set_Torus_RMax(G4String name,G4double val, G4int j = 0) {int i = get_SolidIndex(get_VolIndex(name)); Torus_RMax[i][j] = val;}
00251 void set_Torus_RMin(G4String name,G4double val, G4int j = 0) {int i = get_SolidIndex(get_VolIndex(name)); Torus_RMin[i][j] = val;}
00252 void set_Torus_Rtor(G4String name,G4double val, G4int j = 0) {int i = get_SolidIndex(get_VolIndex(name)); Torus_Rtor[i][j] = val;}
00253 void set_Torus_StartAng(G4String name,G4double val, G4int j = 0) {int i = get_SolidIndex(get_VolIndex(name)); Torus_StartAng[i][j] = val;}
00254 void set_Torus_SpanAng(G4String name,G4double val, G4int j = 0) {int i = get_SolidIndex(get_VolIndex(name)); Torus_SpanAng[i][j] = val;}
00255
00256
00257 void set_Sphere_RMax(G4int i,G4double val, G4int j = 0) { Sphere_RMax[i][j] = val;}
00258 void set_Sphere_RMin(G4int i,G4double val, G4int j = 0) { Sphere_RMin[i][j] = val;}
00259 void set_Sphere_StartPhi(G4int i,G4double val, G4int j = 0) { Sphere_StartPhi[i][j] = val;}
00260 void set_Sphere_SpanPhi(G4int i,G4double val, G4int j = 0) { Sphere_SpanPhi[i][j] = val;}
00261 void set_Sphere_StartTheta(G4int i,G4double val, G4int j = 0) { Sphere_StartTheta[i][j] = val;}
00262 void set_Sphere_SpanTheta(G4int i,G4double val, G4int j = 0) { Sphere_SpanTheta[i][j] = val;}
00263
00264 void set_Sphere_RMax(G4String name,G4double val, G4int j = 0) {int i = get_SolidIndex(get_VolIndex(name)); Sphere_RMax[i][j] = val;}
00265 void set_Sphere_RMin(G4String name,G4double val, G4int j = 0) {int i = get_SolidIndex(get_VolIndex(name)); Sphere_RMin[i][j] = val;}
00266 void set_Sphere_StartPhi(G4String name,G4double val, G4int j = 0) {int i = get_SolidIndex(get_VolIndex(name)); Sphere_StartPhi[i][j] = val;}
00267 void set_Sphere_SpanPhi(G4String name,G4double val, G4int j = 0) {int i = get_SolidIndex(get_VolIndex(name)); Sphere_SpanPhi[i][j] = val;}
00268 void set_Sphere_StartTheta(G4String name,G4double val, G4int j = 0) {int i = get_SolidIndex(get_VolIndex(name)); Sphere_StartTheta[i][j] = val;}
00269 void set_Sphere_SpanTheta(G4String name,G4double val, G4int j = 0) {int i = get_SolidIndex(get_VolIndex(name)); Sphere_SpanTheta[i][j] = val;}
00270
00271
00272 void set_Hype_innerRadius(G4int i,G4double val, G4int j = 0) { Hype_innerRadius[i][j] = val;}
00273 void set_Hype_outerRadius(G4int i,G4double val, G4int j = 0) { Hype_outerRadius[i][j] = val;}
00274 void set_Hype_innerStereo(G4int i,G4double val, G4int j = 0) { Hype_innerStereo[i][j] = val;}
00275 void set_Hype_outerStereo(G4int i,G4double val, G4int j = 0) { Hype_outerStereo[i][j] = val;}
00276 void set_Hype_Length(G4int i,G4double val, G4int j = 0) { Hype_Length[i][j] = val;}
00277
00278 void set_Hype_innerRadius(G4String name,G4double val, G4int j = 0) {int i = get_SolidIndex(get_VolIndex(name)); Hype_innerRadius[i][j] = val;}
00279 void set_Hype_outerRadius(G4String name,G4double val, G4int j = 0) {int i = get_SolidIndex(get_VolIndex(name)); Hype_outerRadius[i][j] = val;}
00280 void set_Hype_innerStereo(G4String name,G4double val, G4int j = 0) {int i = get_SolidIndex(get_VolIndex(name)); Hype_innerStereo[i][j] = val;}
00281 void set_Hype_outerStereo(G4String name,G4double val, G4int j = 0) {int i = get_SolidIndex(get_VolIndex(name)); Hype_outerStereo[i][j] = val;}
00282 void set_Hype_Length(G4String name,G4double val, G4int j = 0) {int i = get_SolidIndex(get_VolIndex(name)); Hype_Length[i][j] = val;}
00283
00284
00285 void set_TwistedTubs_twistedangle(G4int i,G4double val, G4int j = 0) { TwistedTubs_twistedangle[i][j] = val;}
00286 void set_TwistedTubs_endinnerrad(G4int i,G4double val, G4int j = 0) { TwistedTubs_endinnerrad[i][j] = val;}
00287 void set_TwistedTubs_endouterrad(G4int i,G4double val, G4int j = 0) { TwistedTubs_endouterrad[i][j] = val;}
00288 void set_TwistedTubs_Length(G4int i,G4double val, G4int j = 0) { TwistedTubs_Length[i][j] = val;}
00289 void set_TwistedTubs_dphi(G4int i,G4double val, G4int j = 0) { TwistedTubs_dphi[i][j] = val;}
00290
00291 void set_TwistedTubs_twistedangle(G4String name,G4double val, G4int j = 0) {int i = get_SolidIndex(get_VolIndex(name)); TwistedTubs_twistedangle[i][j] = val;}
00292 void set_TwistedTubs_endinnerrad(G4String name,G4double val, G4int j = 0) {int i = get_SolidIndex(get_VolIndex(name)); TwistedTubs_endinnerrad[i][j] = val;}
00293 void set_TwistedTubs_endouterrad(G4String name,G4double val, G4int j = 0) {int i = get_SolidIndex(get_VolIndex(name)); TwistedTubs_endouterrad[i][j] = val;}
00294 void set_TwistedTubs_Length(G4String name,G4double val, G4int j = 0) {int i = get_SolidIndex(get_VolIndex(name)); TwistedTubs_Length[i][j] = val;}
00295 void set_TwistedTubs_dphi(G4String name,G4double val, G4int j = 0) {int i = get_SolidIndex(get_VolIndex(name)); TwistedTubs_dphi[i][j] = val;}
00296
00297
00298 void set_Cons_RMax1(G4int i,G4double val, G4int j = 0) { Cons_RMax1[i][j] = val;}
00299 void set_Cons_RMin1(G4int i,G4double val, G4int j = 0) { Cons_RMin1[i][j] = val;}
00300 void set_Cons_RMax2(G4int i,G4double val, G4int j = 0) { Cons_RMax2[i][j] = val;}
00301 void set_Cons_RMin2(G4int i,G4double val, G4int j = 0) { Cons_RMin2[i][j] = val;}
00302 void set_Cons_Length(G4int i,G4double val, G4int j = 0) { Cons_Length[i][j] = val;}
00303 void set_Cons_StartAng(G4int i,G4double val, G4int j = 0) { Cons_StartAng[i][j] = val;}
00304 void set_Cons_SpanAng(G4int i,G4double val, G4int j = 0) { Cons_SpanAng[i][j] = val;}
00305
00306 void set_Cons_RMax1(G4String name,G4double val, G4int j = 0) {int i = get_SolidIndex(get_VolIndex(name)); Cons_RMax1[i][j] = val;}
00307 void set_Cons_RMin1(G4String name,G4double val, G4int j = 0) {int i = get_SolidIndex(get_VolIndex(name)); Cons_RMin1[i][j] = val;}
00308 void set_Cons_RMax2(G4String name,G4double val, G4int j = 0) {int i = get_SolidIndex(get_VolIndex(name)); Cons_RMax2[i][j] = val;}
00309 void set_Cons_RMin2(G4String name,G4double val, G4int j = 0) {int i = get_SolidIndex(get_VolIndex(name)); Cons_RMin2[i][j] = val;}
00310 void set_Cons_Length(G4String name,G4double val, G4int j = 0) {int i = get_SolidIndex(get_VolIndex(name)); Cons_Length[i][j] = val;}
00311 void set_Cons_StartAng(G4String name,G4double val, G4int j = 0) {int i = get_SolidIndex(get_VolIndex(name)); Cons_StartAng[i][j] = val;}
00312 void set_Cons_SpanAng(G4String name,G4double val, G4int j = 0) {int i = get_SolidIndex(get_VolIndex(name)); Cons_SpanAng[i][j] = val;}
00313
00314
00315 void set_Polycone_numZ(G4int PolyconeId, G4int val, G4int j = 0) {if( check_PolyconeId(PolyconeId) ) Polycone_numZ[PolyconeId] = val;}
00316 void set_Polycone_RMax(G4int PolyconeId,G4int i, G4double val, G4int j = 0) {if( check_PolyconeId(PolyconeId) && i < Polycone_numZ[PolyconeId] ) Polycone_RMax[PolyconeId][i][j] = val;}
00317 void set_Polycone_RMin(G4int PolyconeId,G4int i, G4double val, G4int j = 0) {if( check_PolyconeId(PolyconeId) && i < Polycone_numZ[PolyconeId] ) Polycone_RMin[PolyconeId][i][j] = val;}
00318 void set_Polycone_Z(G4int PolyconeId,G4int i, G4double val, G4int j = 0) {if( check_PolyconeId(PolyconeId) && i < Polycone_numZ[PolyconeId]) Polycone_Z[PolyconeId][i][j] = val;}
00319 void set_Polycone_StartAng(G4int PolyconeId, G4double val, G4int j = 0) {if( check_PolyconeId(PolyconeId) ) Polycone_StartAng[PolyconeId][j] = val;}
00320 void set_Polycone_SpanAng(G4int PolyconeId, G4double val, G4int j = 0) {if( check_PolyconeId(PolyconeId) ) Polycone_SpanAng[PolyconeId][j] = val;}
00321
00322 void set_Polycone_numZ(G4String name, G4int val, G4int j = 0) {int i = get_SolidIndex(get_VolIndex(name));if( check_PolyconeId(i) ) Polycone_numZ[i] = val;}
00323 void set_Polycone_RMax(G4String name,G4int iCone, G4double val, G4int j = 0) {int i = get_SolidIndex(get_VolIndex(name));if( check_PolyconeId(i) && iCone < Polycone_numZ[i] ) Polycone_RMax[i][iCone][j] = val;}
00324 void set_Polycone_RMin(G4String name,G4int iCone, G4double val, G4int j = 0) {int i = get_SolidIndex(get_VolIndex(name));if( check_PolyconeId(i) && iCone < Polycone_numZ[i] ) Polycone_RMin[i][iCone][j] = val;}
00325 void set_Polycone_Z(G4String name,G4int iCone, G4double val, G4int j = 0) {int i = get_SolidIndex(get_VolIndex(name));if( check_PolyconeId(i) && iCone < Polycone_numZ[i]) Polycone_Z[i][iCone][j] = val;}
00326 void set_Polycone_StartAng(G4String name, G4double val, G4int j = 0) {int i = get_SolidIndex(get_VolIndex(name));if( check_PolyconeId(i) ) Polycone_StartAng[i][j] = val;}
00327 void set_Polycone_SpanAng(G4String name, G4double val, G4int j = 0) {int i = get_SolidIndex(get_VolIndex(name));if( check_PolyconeId(i) ) Polycone_SpanAng[i][j] = val;}
00328
00329
00330 void set_ExtrudedSolid_numZ(G4int ExtrudedSolidId, G4int val, G4int j = 0) {if( check_ExtrudedSolidId(ExtrudedSolidId) ) ExtrudedSolid_numZ[ExtrudedSolidId] = val;}
00331 void set_ExtrudedSolid_numP(G4int ExtrudedSolidId, G4int val, G4int j = 0) {if( check_ExtrudedSolidId(ExtrudedSolidId) ) ExtrudedSolid_numP[ExtrudedSolidId] = val;}
00332 void set_ExtrudedSolid_X(G4int ExtrudedSolidId,G4int i, G4double val, G4int j = 0) {if( check_ExtrudedSolidId(ExtrudedSolidId) && i < ExtrudedSolid_numP[ExtrudedSolidId] ) ExtrudedSolid_X[ExtrudedSolidId][i][j] = val;}
00333 void set_ExtrudedSolid_Y(G4int ExtrudedSolidId,G4int i, G4double val, G4int j = 0) {if( check_ExtrudedSolidId(ExtrudedSolidId) && i < ExtrudedSolid_numP[ExtrudedSolidId] ) ExtrudedSolid_Y[ExtrudedSolidId][i][j] = val;}
00334 void set_ExtrudedSolid_Z(G4int ExtrudedSolidId,G4int i, G4double val, G4int j = 0) {if( check_ExtrudedSolidId(ExtrudedSolidId) && i < ExtrudedSolid_numZ[ExtrudedSolidId]) ExtrudedSolid_Z[ExtrudedSolidId][i][j] = val;}
00335 void set_ExtrudedSolid_X0(G4int ExtrudedSolidId,G4int i, G4double val, G4int j = 0) {if( check_ExtrudedSolidId(ExtrudedSolidId) && i < ExtrudedSolid_numZ[ExtrudedSolidId]) ExtrudedSolid_X0[ExtrudedSolidId][i][j] = val;}
00336 void set_ExtrudedSolid_Y0(G4int ExtrudedSolidId,G4int i, G4double val, G4int j = 0) {if( check_ExtrudedSolidId(ExtrudedSolidId) && i < ExtrudedSolid_numZ[ExtrudedSolidId]) ExtrudedSolid_Y0[ExtrudedSolidId][i][j] = val;}
00337 void set_ExtrudedSolid_Scale(G4int ExtrudedSolidId,G4int i, G4double val, G4int j = 0) {if( check_ExtrudedSolidId(ExtrudedSolidId) && i < ExtrudedSolid_numZ[ExtrudedSolidId]) ExtrudedSolid_Scale[ExtrudedSolidId][i][j] = val;}
00338
00339 void set_ExtrudedSolid_numZ(G4String name, G4int val, G4int j = 0) {int i = get_SolidIndex(get_VolIndex(name));if( check_ExtrudedSolidId(i) ) ExtrudedSolid_numZ[i] = val;}
00340 void set_ExtrudedSolid_numP(G4String name, G4int val, G4int j = 0) {int i = get_SolidIndex(get_VolIndex(name));if( check_ExtrudedSolidId(i) ) ExtrudedSolid_numP[i] = val;}
00341 void set_ExtrudedSolid_X(G4String name,G4int iCone, G4double val, G4int j = 0) {int i = get_SolidIndex(get_VolIndex(name));if( check_ExtrudedSolidId(i) && iCone < ExtrudedSolid_numP[i] ) ExtrudedSolid_X[i][iCone][j] = val;}
00342 void set_ExtrudedSolid_Y(G4String name,G4int iCone, G4double val, G4int j = 0) {int i = get_SolidIndex(get_VolIndex(name));if( check_ExtrudedSolidId(i) && iCone < ExtrudedSolid_numP[i] ) ExtrudedSolid_Y[i][iCone][j] = val;}
00343 void set_ExtrudedSolid_Z(G4String name,G4int iCone, G4double val, G4int j = 0) {int i = get_SolidIndex(get_VolIndex(name));if( check_ExtrudedSolidId(i) && iCone < ExtrudedSolid_numZ[i]) ExtrudedSolid_Z[i][iCone][j] = val;}
00344 void set_ExtrudedSolid_X0(G4String name,G4int iCone, G4double val, G4int j = 0) {int i = get_SolidIndex(get_VolIndex(name));if( check_ExtrudedSolidId(i) && iCone < ExtrudedSolid_numZ[i]) ExtrudedSolid_X0[i][iCone][j] = val;}
00345 void set_ExtrudedSolid_Y0(G4String name,G4int iCone, G4double val, G4int j = 0) {int i = get_SolidIndex(get_VolIndex(name));if( check_ExtrudedSolidId(i) && iCone < ExtrudedSolid_numZ[i]) ExtrudedSolid_Y0[i][iCone][j] = val;}
00346 void set_ExtrudedSolid_Scale(G4String name,G4int iCone, G4double val, G4int j = 0) {int i = get_SolidIndex(get_VolIndex(name));if( check_ExtrudedSolidId(i) && iCone < ExtrudedSolid_numZ[i]) ExtrudedSolid_Scale[i][iCone][j] = val;}
00347
00348
00349 void set_BooleanSolid_type(G4int BooleanSolidId, G4String val) {if( check_BooleanSolidId(BooleanSolidId) ) BooleanSolid_type[BooleanSolidId]=val;}
00350 void set_BooleanSolid_sol1(G4int BooleanSolidId, G4String val) {if( check_BooleanSolidId(BooleanSolidId) ) BooleanSolid_sol1[BooleanSolidId]=val;}
00351 void set_BooleanSolid_sol2(G4int BooleanSolidId, G4String val) {if( check_BooleanSolidId(BooleanSolidId) ) BooleanSolid_sol2[BooleanSolidId]=val;}
00352 void set_BooleanSolid_Ephi(G4int BooleanSolidId, G4double val, G4int j = 0) {if( check_BooleanSolidId(BooleanSolidId) ) BooleanSolid_Ephi[BooleanSolidId][j]=val;}
00353 void set_BooleanSolid_Etheta(G4int BooleanSolidId, G4double val, G4int j = 0) {if( check_BooleanSolidId(BooleanSolidId) ) BooleanSolid_Etheta[BooleanSolidId][j]=val;}
00354 void set_BooleanSolid_Epsi(G4int BooleanSolidId, G4double val, G4int j = 0) {if( check_BooleanSolidId(BooleanSolidId) ) BooleanSolid_Epsi[BooleanSolidId][j]=val;}
00355 void set_BooleanSolid_PosX(G4int BooleanSolidId, G4double val, G4int j = 0) {if( check_BooleanSolidId(BooleanSolidId) ) BooleanSolid_Pos[BooleanSolidId][j].setX(val);}
00356 void set_BooleanSolid_PosY(G4int BooleanSolidId, G4double val, G4int j = 0) {if( check_BooleanSolidId(BooleanSolidId) ) BooleanSolid_Pos[BooleanSolidId][j].setY(val);}
00357 void set_BooleanSolid_PosZ(G4int BooleanSolidId, G4double val, G4int j = 0) {if( check_BooleanSolidId(BooleanSolidId) ) BooleanSolid_Pos[BooleanSolidId][j].setZ(val);}
00358
00359 void set_BooleanSolid_type(G4String name, G4String val) {int i = get_SolidIndex(get_VolIndex(name));if( check_BooleanSolidId(i) ) BooleanSolid_type[i]=val;}
00360 void set_BooleanSolid_sol1(G4String name, G4String val) {int i = get_SolidIndex(get_VolIndex(name));if( check_BooleanSolidId(i) ) BooleanSolid_sol1[i]=val;}
00361 void set_BooleanSolid_sol2(G4String name, G4String val) {int i = get_SolidIndex(get_VolIndex(name));if( check_BooleanSolidId(i) ) BooleanSolid_sol2[i]=val;}
00362 void set_BooleanSolid_Ephi(G4String name, G4double val, G4int j = 0) {int i = get_SolidIndex(get_VolIndex(name));if( check_BooleanSolidId(i) ) BooleanSolid_Ephi[i][j]=val;}
00363 void set_BooleanSolid_Etheta(G4String name, G4double val, G4int j = 0) {int i = get_SolidIndex(get_VolIndex(name));if( check_BooleanSolidId(i) ) BooleanSolid_Etheta[i][j]=val;}
00364 void set_BooleanSolid_Epsi(G4String name, G4double val, G4int j = 0) {int i = get_SolidIndex(get_VolIndex(name));if( check_BooleanSolidId(i) ) BooleanSolid_Epsi[i][j]=val;}
00365 void set_BooleanSolid_PosX(G4String name, G4double val, G4int j = 0) {int i = get_SolidIndex(get_VolIndex(name));if( check_BooleanSolidId(i) ) BooleanSolid_Pos[i][j].setX(val);}
00366 void set_BooleanSolid_PosY(G4String name, G4double val, G4int j = 0) {int i = get_SolidIndex(get_VolIndex(name));if( check_BooleanSolidId(i) ) BooleanSolid_Pos[i][j].setY(val);}
00367 void set_BooleanSolid_PosZ(G4String name, G4double val, G4int j = 0) {int i = get_SolidIndex(get_VolIndex(name));if( check_BooleanSolidId(i) ) BooleanSolid_Pos[i][j].setZ(val);}
00368
00369
00370 void set_vis(G4String type, G4int i,bool val) { int k = get_index(type, i); vVis[k] = val;}
00371 void set_r(G4String type, G4int i,G4double val) { int k = get_index(type, i); vR[k] = val;}
00372 void set_g(G4String type, G4int i,G4double val) { int k = get_index(type, i); vG[k] = val;}
00373 void set_b(G4String type, G4int i,G4double val) { int k = get_index(type, i); vB[k] = val;}
00374 void set_t(G4String type, G4int i,G4double val) { int k = get_index(type, i); vT[k] = val;}
00375
00376 void set_vis(G4int i,bool val) { vVis[i] = val;}
00377 void set_r(G4int i,G4double val) { vR[i] = val;}
00378 void set_g(G4int i,G4double val) { vG[i] = val;}
00379 void set_b(G4int i,G4double val) { vB[i] = val;}
00380 void set_t(G4int i,G4double val) { vT[i] = val;}
00381
00382 void set_vis(G4String name,bool val) {int k = get_VolIndex(name); vVis[k] = val;}
00383 void set_r(G4String name,G4double val) {int k = get_VolIndex(name); vR[k] = val;}
00384 void set_g(G4String name,G4double val) {int k = get_VolIndex(name); vG[k] = val;}
00385 void set_b(G4String name,G4double val) {int k = get_VolIndex(name); vB[k] = val;}
00386 void set_t(G4String name,G4double val) {int k = get_VolIndex(name); vT[k] = val;}
00387
00388 private:
00389
00390
00391 int get_index( G4String type, G4int i ){
00392 int k = -1;
00393 if ( type == "Box" && check_BoxId(i) ) k = Box_GenIndex[i];
00394 else if ( type == "EllipticalTube" && check_EllipticalTubeId(i) ) k = EllipticalTube_GenIndex[i];
00395 else if ( type == "Tubs" && check_TubsId(i) ) k = Tubs_GenIndex[i];
00396 else if ( type == "Torus" && check_TorusId(i) ) k = Torus_GenIndex[i];
00397 else if ( type == "Sphere" && check_SphereId(i) ) k = Sphere_GenIndex[i];
00398 else if ( type == "Hype" && check_HypeId(i) ) k = Hype_GenIndex[i];
00399 else if ( type == "TwistedTubs" && check_TwistedTubsId(i) ) k = TwistedTubs_GenIndex[i];
00400 else if ( type == "Cons" && check_ConsId(i) ) k = Cons_GenIndex[i];
00401 else if ( type == "Polycone" && check_PolyconeId(i) ) k = Polycone_GenIndex[i];
00402 else if ( type == "ExtrudedSolid_Scale" && check_ExtrudedSolidId(i) ) k = ExtrudedSolid_GenIndex[i];
00403 else if ( type == "BooleanSolid" && check_BooleanSolidId(i) ) k = BooleanSolid_GenIndex[i];
00404 else DEBUG("Wrong index number or unknown volume type!");
00405 return k;
00406 }
00407
00408
00409 bool check_VolId(int VolId){
00410 if ( VolId < VolNo ) return true;
00411 else{
00412 std::cout<<"In SimpleGeometryParameter, VolId is out of range! VolId = "<<VolId<<", VolNo = "<<VolNo<<std::endl;
00413 return false;
00414 }
00415 }
00416 bool check_BoxId(int BoxId){
00417 if ( BoxId < BoxNo ) return true;
00418 else{
00419 std::cout<<"In SimpleGeometryParameter, BoxId is out of range! BoxId = "<<BoxId<<", BoxNo = "<<BoxNo<<std::endl;
00420 return false;
00421 }
00422 }
00423 bool check_EllipticalTubeId(int EllipticalTubeId){
00424 if ( EllipticalTubeId < EllipticalTubeNo ) return true;
00425 else{
00426 std::cout<<"In SimpleGeometryParameter, EllipticalTubeId is out of range! EllipticalTubeId = "<<EllipticalTubeId<<", EllipticalTubeNo = "<<EllipticalTubeNo<<std::endl;
00427 return false;
00428 }
00429 }
00430 bool check_BoxNo( int No ){
00431 if( No != BoxNo ){
00432 std::cout<<"In SimpleGeometryParameter::InitFromFile(), insufficient Box info! BoxNo = "<<BoxNo<<", while only "<<No<<" Box were found."<<std::endl;
00433 return false;
00434 }
00435 else return true;
00436 }
00437 bool check_TubsId(int TubsId){
00438 if ( TubsId < TubsNo ) return true;
00439 else{
00440 std::cout<<"In SimpleGeometryParameter, TubsId is out of range! TubsId = "<<TubsId<<", TubsNo = "<<TubsNo<<std::endl;
00441 return false;
00442 }
00443 }
00444 bool check_TubsNo( int No ){
00445 if( No != TubsNo ){
00446 std::cout<<"In SimpleGeometryParameter::InitFromFile(), insufficient Tubs info! TubsNo = "<<TubsNo<<", while only "<<No<<" Tubs were found."<<std::endl;
00447 return false;
00448 }
00449 else return true;
00450 }
00451 bool check_TorusId(int TorusId){
00452 if ( TorusId < TorusNo ) return true;
00453 else{
00454 std::cout<<"In SimpleGeometryParameter, TorusId is out of range! TorusId = "<<TorusId<<", TorusNo = "<<TorusNo<<std::endl;
00455 return false;
00456 }
00457 }
00458 bool check_TorusNo( int No ){
00459 if( No != TorusNo ){
00460 std::cout<<"In SimpleGeometryParameter::InitFromFile(), insufficient Torus info! TorusNo = "<<TorusNo<<", while only "<<No<<" Torus were found."<<std::endl;
00461 return false;
00462 }
00463 else return true;
00464 }
00465 bool check_SphereId(int SphereId){
00466 if ( SphereId < SphereNo ) return true;
00467 else{
00468 std::cout<<"In SimpleGeometryParameter, SphereId is out of range! SphereId = "<<SphereId<<", SphereNo = "<<SphereNo<<std::endl;
00469 return false;
00470 }
00471 }
00472 bool check_SphereNo( int No ){
00473 if( No != SphereNo ){
00474 std::cout<<"In SimpleGeometryParameter::InitFromFile(), insufficient Sphere info! SphereNo = "<<SphereNo<<", while only "<<No<<" Sphere were found."<<std::endl;
00475 return false;
00476 }
00477 else return true;
00478 }
00479 bool check_HypeId(int HypeId){
00480 if ( HypeId < HypeNo ) return true;
00481 else{
00482 std::cout<<"In SimpleGeometryParameter, HypeId is out of range! HypeId = "<<HypeId<<", HypeNo = "<<HypeNo<<std::endl;
00483 return false;
00484 }
00485 }
00486 bool check_HypeNo( int No ){
00487 if( No != HypeNo ){
00488 std::cout<<"In SimpleGeometryParameter::InitFromFile(), insufficient Hype info! HypeNo = "<<HypeNo<<", while only "<<No<<" Hype were found."<<std::endl;
00489 return false;
00490 }
00491 else return true;
00492 }
00493 bool check_TwistedTubsId(int TwistedTubsId){
00494 if ( TwistedTubsId < TwistedTubsNo ) return true;
00495 else{
00496 std::cout<<"In SimpleGeometryParameter, TwistedTubsId is out of range! TwistedTubsId = "<<TwistedTubsId<<", TwistedTubsNo = "<<TwistedTubsNo<<std::endl;
00497 return false;
00498 }
00499 }
00500 bool check_TwistedTubsNo( int No ){
00501 if( No != TwistedTubsNo ){
00502 std::cout<<"In SimpleGeometryParameter::InitFromFile(), insufficient TwistedTubs info! TwistedTubsNo = "<<TwistedTubsNo<<", while only "<<No<<" TwistedTubs were found."<<std::endl;
00503 return false;
00504 }
00505 else return true;
00506 }
00507 bool check_ConsId(int ConsId){
00508 if ( ConsId < ConsNo ) return true;
00509 else{
00510 std::cout<<"In SimpleGeometryParameter, ConsId is out of range! ConsId = "<<ConsId<<", ConsNo = "<<ConsNo<<std::endl;
00511 return false;
00512 }
00513 }
00514 bool check_ConsNo( int No ){
00515 if( No != ConsNo ){
00516 std::cout<<"In SimpleGeometryParameter::InitFromFile(), insufficient Cons info! ConsNo = "<<ConsNo<<", while only "<<No<<" Cons were found."<<std::endl;
00517 return false;
00518 }
00519 else return true;
00520 }
00521 bool check_PolyconeId(int PolyconeId){
00522 if ( PolyconeId < PolyconeNo ) return true;
00523 else{
00524 std::cout<<"In SimpleGeometryParameter, PolyconeId is out of range! PolyconeId = "<<PolyconeId<<", PolyconeNo = "<<PolyconeNo<<std::endl;
00525 return false;
00526 }
00527 }
00528 bool check_PolyconeNo( int No ){
00529 if( No != PolyconeNo ){
00530 std::cout<<"In SimpleGeometryParameter::InitFromFile(), insufficient Polycone info! PolyconeNo = "<<PolyconeNo<<", while only "<<No<<" Polycone were found."<<std::endl;
00531 return false;
00532 }
00533 else return true;
00534 }
00535 bool check_ExtrudedSolidId(int ExtrudedSolidId){
00536 if ( ExtrudedSolidId < ExtrudedSolidNo ) return true;
00537 else{
00538 std::cout<<"In SimpleGeometryParameter, ExtrudedSolidId is out of range! ExtrudedSolidId = "<<ExtrudedSolidId<<", ExtrudedSolidNo = "<<ExtrudedSolidNo<<std::endl;
00539 return false;
00540 }
00541 }
00542 bool check_ExtrudedSolidNo( int No ){
00543 if( No != ExtrudedSolidNo ){
00544 std::cout<<"In SimpleGeometryParameter::InitFromFile(), insufficient ExtrudedSolid info! ExtrudedSolidNo = "<<ExtrudedSolidNo<<", while only "<<No<<" ExtrudedSolid were found."<<std::endl;
00545 return false;
00546 }
00547 else return true;
00548 }
00549 bool check_BooleanSolidId(int BooleanSolidId){
00550 if ( BooleanSolidId < BooleanSolidNo ) return true;
00551 else{
00552 std::cout<<"In SimpleGeometryParameter, BooleanSolidId is out of range! BooleanSolidId = "<<BooleanSolidId<<", BooleanSolidNo = "<<BooleanSolidNo<<std::endl;
00553 return false;
00554 }
00555 }
00556 bool check_BooleanSolidNo( int No ){
00557 if( No != BooleanSolidNo ){
00558 std::cout<<"In SimpleGeometryParameter::InitFromFile(), insufficient BooleanSolid info! BooleanSolidNo = "<<BooleanSolidNo<<", while only "<<No<<" BooleanSolid were found."<<std::endl;
00559 return false;
00560 }
00561 else return true;
00562 }
00563
00564 void dump_general_header();
00565 void dump_general_note();
00566 void dump_general_value(G4int index, G4int j = 0);
00567
00568 private:
00569
00570
00571 G4int VolNo;
00572 std::vector<G4String> fPosX;
00573 std::vector<G4String> fPosY;
00574 std::vector<G4String> fPosZ;
00575 std::vector<G4String> fPosR;
00576 std::vector<G4String> fPosPhi;
00577 std::vector<G4String> fPosTheta;
00578 std::vector<G4String> PosType;
00579 std::vector<std::vector<G4ThreeVector> > Pos;
00580 std::vector<G4String> Name;
00581 std::vector<G4String> MotherName;
00582 std::vector<G4String> SDName;
00583 std::vector<G4String> Material;
00584 std::vector<G4int> SRepNo;
00585 std::vector<G4int> RepNo;
00586 std::vector<G4String> SolidType;
00587 std::vector<G4int> SolidIndex;
00588 std::vector<std::vector<G4double> > Ephi;
00589 std::vector<std::vector<G4double> > Etheta;
00590 std::vector<std::vector<G4double> > Epsi;
00591 std::vector<G4String> fEphi;
00592 std::vector<G4String> fEtheta;
00593 std::vector<G4String> fEpsi;
00594 std::vector<G4bool> SolidBoolean;
00595
00596
00597 G4int BoxNo;
00598 std::vector<std::vector<G4double> > Box_X;
00599 std::vector<std::vector<G4double> > Box_Y;
00600 std::vector<std::vector<G4double> > Box_Z;
00601 std::vector<G4String> fBox_X;
00602 std::vector<G4String> fBox_Y;
00603 std::vector<G4String> fBox_Z;
00604 std::vector<G4int> Box_GenIndex;
00605
00606
00607 G4int EllipticalTubeNo;
00608 std::vector<std::vector<G4double> > EllipticalTube_X;
00609 std::vector<std::vector<G4double> > EllipticalTube_Y;
00610 std::vector<std::vector<G4double> > EllipticalTube_Z;
00611 std::vector<G4String> fEllipticalTube_X;
00612 std::vector<G4String> fEllipticalTube_Y;
00613 std::vector<G4String> fEllipticalTube_Z;
00614 std::vector<G4int> EllipticalTube_GenIndex;
00615
00616
00617 G4int TubsNo;
00618 std::vector<std::vector<G4double> > Tubs_RMax;
00619 std::vector<std::vector<G4double> > Tubs_RMin;
00620 std::vector<std::vector<G4double> > Tubs_Length;
00621 std::vector<std::vector<G4double> > Tubs_StartAng;
00622 std::vector<std::vector<G4double> > Tubs_SpanAng;
00623 std::vector<G4String> fTubs_RMax;
00624 std::vector<G4String> fTubs_RMin;
00625 std::vector<G4String> fTubs_Length;
00626 std::vector<G4String> fTubs_StartAng;
00627 std::vector<G4String> fTubs_SpanAng;
00628 std::vector<G4int> Tubs_GenIndex;
00629
00630
00631 G4int TorusNo;
00632 std::vector<G4String> fTorus_RMax;
00633 std::vector<G4String> fTorus_RMin;
00634 std::vector<G4String> fTorus_Rtor;
00635 std::vector<G4String> fTorus_StartAng;
00636 std::vector<G4String> fTorus_SpanAng;
00637 std::vector<std::vector<G4double> > Torus_RMax;
00638 std::vector<std::vector<G4double> > Torus_RMin;
00639 std::vector<std::vector<G4double> > Torus_Rtor;
00640 std::vector<std::vector<G4double> > Torus_StartAng;
00641 std::vector<std::vector<G4double> > Torus_SpanAng;
00642 std::vector<G4int> Torus_GenIndex;
00643
00644
00645 G4int SphereNo;
00646 std::vector<G4String> fSphere_RMax;
00647 std::vector<G4String> fSphere_RMin;
00648 std::vector<G4String> fSphere_StartPhi;
00649 std::vector<G4String> fSphere_SpanPhi;
00650 std::vector<G4String> fSphere_StartTheta;
00651 std::vector<G4String> fSphere_SpanTheta;
00652 std::vector<std::vector<G4double> > Sphere_RMax;
00653 std::vector<std::vector<G4double> > Sphere_RMin;
00654 std::vector<std::vector<G4double> > Sphere_StartPhi;
00655 std::vector<std::vector<G4double> > Sphere_SpanPhi;
00656 std::vector<std::vector<G4double> > Sphere_StartTheta;
00657 std::vector<std::vector<G4double> > Sphere_SpanTheta;
00658 std::vector<G4int> Sphere_GenIndex;
00659
00660
00661 G4int HypeNo;
00662 std::vector<G4String> fHype_innerRadius;
00663 std::vector<G4String> fHype_outerRadius;
00664 std::vector<G4String> fHype_innerStereo;
00665 std::vector<G4String> fHype_outerStereo;
00666 std::vector<G4String> fHype_Length;
00667 std::vector<std::vector<G4double> > Hype_innerRadius;
00668 std::vector<std::vector<G4double> > Hype_outerRadius;
00669 std::vector<std::vector<G4double> > Hype_innerStereo;
00670 std::vector<std::vector<G4double> > Hype_outerStereo;
00671 std::vector<std::vector<G4double> > Hype_Length;
00672 std::vector<G4int> Hype_GenIndex;
00673
00674
00675 G4int TwistedTubsNo;
00676 std::vector<G4String> fTwistedTubs_twistedangle;
00677 std::vector<G4String> fTwistedTubs_endinnerrad;
00678 std::vector<G4String> fTwistedTubs_endouterrad;
00679 std::vector<G4String> fTwistedTubs_Length;
00680 std::vector<G4String> fTwistedTubs_dphi;
00681 std::vector<std::vector<G4double> > TwistedTubs_twistedangle;
00682 std::vector<std::vector<G4double> > TwistedTubs_endinnerrad;
00683 std::vector<std::vector<G4double> > TwistedTubs_endouterrad;
00684 std::vector<std::vector<G4double> > TwistedTubs_Length;
00685 std::vector<std::vector<G4double> > TwistedTubs_dphi;
00686 std::vector<G4int> TwistedTubs_GenIndex;
00687
00688
00689 G4int ConsNo;
00690 std::vector<G4String> fCons_RMax1;
00691 std::vector<G4String> fCons_RMin1;
00692 std::vector<G4String> fCons_RMax2;
00693 std::vector<G4String> fCons_RMin2;
00694 std::vector<G4String> fCons_Length;
00695 std::vector<G4String> fCons_StartAng;
00696 std::vector<G4String> fCons_SpanAng;
00697 std::vector<std::vector<G4double> > Cons_RMax1;
00698 std::vector<std::vector<G4double> > Cons_RMin1;
00699 std::vector<std::vector<G4double> > Cons_RMax2;
00700 std::vector<std::vector<G4double> > Cons_RMin2;
00701 std::vector<std::vector<G4double> > Cons_Length;
00702 std::vector<std::vector<G4double> > Cons_StartAng;
00703 std::vector<std::vector<G4double> > Cons_SpanAng;
00704 std::vector<G4int> Cons_GenIndex;
00705
00706
00707 G4int PolyconeNo;
00708 std::vector<G4int> Polycone_numZ;
00709 std::vector<std::vector<G4String> > fPolycone_RMax;
00710 std::vector<std::vector<G4String> > fPolycone_RMin;
00711 std::vector<std::vector<G4String> > fPolycone_Z;
00712 std::vector<std::vector<std::vector<G4double> > > Polycone_RMax;
00713 std::vector<std::vector<std::vector<G4double> > > Polycone_RMin;
00714 std::vector<std::vector<std::vector<G4double> > > Polycone_Z;
00715 std::vector<G4String> fPolycone_StartAng;
00716 std::vector<G4String> fPolycone_SpanAng;
00717 std::vector<std::vector<G4double> > Polycone_StartAng;
00718 std::vector<std::vector<G4double> > Polycone_SpanAng;
00719 std::vector<G4int> Polycone_GenIndex;
00720 G4int waited_Polycone_iVol;
00721 G4int achieved_componets_Polycone;
00722
00723
00724 G4int ExtrudedSolidNo;
00725 std::vector<G4int> ExtrudedSolid_numZ;
00726 std::vector<G4int> ExtrudedSolid_numP;
00727 std::vector<std::vector<G4String> > fExtrudedSolid_X;
00728 std::vector<std::vector<G4String> > fExtrudedSolid_Y;
00729 std::vector<std::vector<G4String> > fExtrudedSolid_Z;
00730 std::vector<std::vector<G4String> > fExtrudedSolid_X0;
00731 std::vector<std::vector<G4String> > fExtrudedSolid_Y0;
00732 std::vector<std::vector<G4String> > fExtrudedSolid_Scale;
00733 std::vector<std::vector<std::vector<G4double> > > ExtrudedSolid_X;
00734 std::vector<std::vector<std::vector<G4double> > > ExtrudedSolid_Y;
00735 std::vector<std::vector<std::vector<G4double> > > ExtrudedSolid_Z;
00736 std::vector<std::vector<std::vector<G4double> > > ExtrudedSolid_X0;
00737 std::vector<std::vector<std::vector<G4double> > > ExtrudedSolid_Y0;
00738 std::vector<std::vector<std::vector<G4double> > > ExtrudedSolid_Scale;
00739 std::vector<G4int> ExtrudedSolid_GenIndex;
00740 G4int waited_ExtrudedSolid_iVol;
00741 G4int achieved_P_ExtrudedSolid;
00742 G4int achieved_Z_ExtrudedSolid;
00743
00744
00745 G4int BooleanSolidNo;
00746 std::vector<G4String> BooleanSolid_type;
00747 std::vector<G4String> BooleanSolid_sol1;
00748 std::vector<G4String> BooleanSolid_sol2;
00749 std::vector<G4int> BooleanSolid_GenIndex;
00750 std::vector<std::vector<G4double> > BooleanSolid_Ephi;
00751 std::vector<std::vector<G4double> > BooleanSolid_Etheta;
00752 std::vector<std::vector<G4double> > BooleanSolid_Epsi;
00753 std::vector<std::vector<G4ThreeVector> > BooleanSolid_Pos;
00754 std::vector<G4String> fBooleanSolid_Ephi;
00755 std::vector<G4String> fBooleanSolid_Etheta;
00756 std::vector<G4String> fBooleanSolid_Epsi;
00757 std::vector<G4String> fBooleanSolid_PosX;
00758 std::vector<G4String> fBooleanSolid_PosY;
00759 std::vector<G4String> fBooleanSolid_PosZ;
00760 std::vector<G4String> fBooleanSolid_PosTheta;
00761 std::vector<G4String> fBooleanSolid_PosPhi;
00762 std::vector<G4String> fBooleanSolid_PosR;
00763 std::vector<G4String> BooleanSolid_PosType;
00764
00765
00766 std::vector<bool> vVis;
00767 std::vector<G4double> vR, vG, vB, vT;
00768
00769
00770 bool notReSetVis;
00771
00772 };
00773
00774 #endif