Geo Namespace Reference

Enumerations

enum  EAppType { kRecons, kVMC, kUnknownAppType }
enum  ESwimMethod { kNoFieldSwim, kRungeKutta, kStepHelix, kUnknownSwimMethod }
enum  EDetComponent {
  kMars, kLinr, kHall, kStpScint,
  kStpTiO2, kMdlAlSkin, kMdlAir, kPlnScint,
  kPlnSteel, kPlnAirGap, kCRGapWater, kCRGapCoil,
  kCRGapThroat, kCRGapFlange, kCRGapBypass, kCRStlWater,
  kCRStlCoil, kCRStlThroat, kCRStlNeck, kCRStlHole,
  kCRStlDetail, kCRSctWater, kCRSctCoil, kCRSctThroat,
  kCRSctFlange, kCRSctBypass, kRCCoil, kRCAir,
  kRCShaft, kVSStpScint, kVSStpTiO2, kVSMdlAlSkin,
  kVSMdlAir, kVSPlnScint, kSoLo, kUnknownDetComponent
}
enum  EFldStrength { kNoField, kLowField, kHighField, kUnknownFldStrength }

Functions

Float_t GetScale (EAppType apptype)
const char * AsString (EAppType apptype)
const char * AsString (ESwimMethod swimmethod)
const char * AsString (EDetComponent detcomponent)
const char * AsString (EFldStrength fldstrength)
EAppType GetAppType (const char *apptypename)
ESwimMethod GetSwimMethod (const char *swimmethodname)
EDetComponent GetDetComponent (const char *detcomponentname)
EFldStrength GetFldStrength (const char *fldstrengthname)

Variables

const Float_t kStripWidth = 4.1 * Munits::cm
const Float_t kStripThick = 1.0 * Munits::cm
const Float_t kCoexThick = 0.025 * Munits::cm
const Float_t kModuleSkinThick = 0.05 * Munits::cm
const Float_t kFarModuleHoleRad = 19.7* Munits::cm
const Float_t kNearModuleHoleRad = 27.9* Munits::cm
const Float_t kFarSteelWidth = 8.0 * Munits::m
const Float_t kCalDetSteelWidth = 1.0 * Munits::m
const Float_t kNearXOffset = -55.78 * Munits::cm
const Float_t kCoilRad = 12.0 * Munits::cm
const Float_t kThroatRad = 13.0 * Munits::cm
const Float_t kNeckRad = 14.0 * Munits::cm
const Float_t kFeHoleRad = 15.0 * Munits::cm
const Float_t kFlangeRad = 17.0 * Munits::cm
const Float_t kDetailRad = 29.8 * Munits::cm
const Float_t kNearFullBypassRad = 27.9 * Munits::cm
const Float_t kNearPartialBypassRad = 18.0 * Munits::cm
const Float_t kFarBypassRad = 19.7 * Munits::cm
const Float_t kNearCoolRad = 0.8255 * Munits::cm

Enumeration Type Documentation

Enumerator:
kRecons 
kVMC 
kUnknownAppType 

Definition at line 66 of file Geo.h.

00066                 {
00067     // Geometry application type
00068     kRecons, // for use in minos reconstruction framework
00069     kVMC,    // for use in virtual monte carlo application
00070     kUnknownAppType
00071   };

Enumerator:
kMars 
kLinr 
kHall 
kStpScint 
kStpTiO2 
kMdlAlSkin 
kMdlAir 
kPlnScint 
kPlnSteel 
kPlnAirGap 
kCRGapWater 
kCRGapCoil 
kCRGapThroat 
kCRGapFlange 
kCRGapBypass 
kCRStlWater 
kCRStlCoil 
kCRStlThroat 
kCRStlNeck 
kCRStlHole 
kCRStlDetail 
kCRSctWater 
kCRSctCoil 
kCRSctThroat 
kCRSctFlange 
kCRSctBypass 
kRCCoil 
kRCAir 
kRCShaft 
kVSStpScint 
kVSStpTiO2 
kVSMdlAlSkin 
kVSMdlAir 
kVSPlnScint 
kSoLo 
kUnknownDetComponent 

Definition at line 87 of file Geo.h.

00087                      {
00088     // Detector components
00089     kMars,         // rock
00090     kLinr,         // cavern liner
00091     kHall,         // cavern hall
00092     kStpScint,     // strip scintillator
00093     kStpTiO2,      // strip TiO2 coex coating
00094     kMdlAlSkin,    // scint module Al skin
00095     kMdlAir,       // scint module Air fill
00096     kPlnScint,     // scint plane Air fill
00097     kPlnSteel,     // steel plane
00098     kPlnAirGap,    // scint/steel pln air gap 
00099     kCRGapWater,   // coil region air gap water
00100     kCRGapCoil,    // coil region air gap coil
00101     kCRGapThroat,  // coil region air gap throat
00102     kCRGapFlange,  // coil region air gap flange
00103     kCRGapBypass,  // coil region air gap bypass
00104     kCRStlWater,   // coil region steel pln water
00105     kCRStlCoil,    // coil region steel pln coil
00106     kCRStlThroat,  // coil region steel pln throat
00107     kCRStlNeck,    // coil region steel pln neck
00108     kCRStlHole,    // coil region steel pln hole
00109     kCRStlDetail,  // coil region steel pln detail
00110     kCRSctWater,   // coil region scint pln water
00111     kCRSctCoil,    // coil region scint pln coil
00112     kCRSctThroat,  // coil region scint pln throat 
00113     kCRSctFlange,  // coil region scint pln flange
00114     kCRSctBypass,  // coil region scint pln bypass
00115     kRCCoil,       // return coil 
00116     kRCAir,        // return coil air fill
00117     kRCShaft,      // return coil shaft 
00118     kVSStpScint,   // strip scintillator
00119     kVSStpTiO2,    // strip TiO2 coex coating
00120     kVSMdlAlSkin,  // scint module Al skin
00121     kVSMdlAir,     // scint module Air fill
00122     kVSPlnScint,   // scint plane Air fill
00123     kSoLo,         // soudan low background counting facilities (lead stacks)
00124     kUnknownDetComponent  // unknown
00125   };

Enumerator:
kNoField 
kLowField 
kHighField 
kUnknownFldStrength 

Definition at line 127 of file Geo.h.

00127                     {
00128     // Field strength assigned to detector components
00129     kNoField,      // e.g. hall,rock
00130     kLowField,     // e.g. scint plane,plane air gaps
00131     kHighField,    // e.g. steel plane, coil
00132     kUnknownFldStrength // unknown 
00133   };

Enumerator:
kNoFieldSwim 
kRungeKutta 
kStepHelix 
kUnknownSwimMethod 

Definition at line 73 of file Geo.h.

00073                    {
00074     // Bfield swim method.  Assigned to medium and used to determine 
00075     // transport model used to swim particles through that medium in VMC.
00076     kNoFieldSwim,  // swim as though no b-field
00077     // Runge-Kutta method recommended for fields with a strong gradient.
00078     kRungeKutta,
00079     // Step-wise helix method recommended for fields with a small gradient.
00080     // Tracking is performed along helix for each step, assuming a
00081     // constant B-field with the value of the step mid-point.
00082     // Better performance than kRungeKutta.
00083     kStepHelix,
00084     kUnknownSwimMethod 
00085   };


Function Documentation

const char * Geo::AsString ( Geo::EFldStrength  fldstrength  ) 

Definition at line 175 of file Geo.cxx.

References kHighField, kLowField, kNoField, Msg::kWarning, and MSG.

00175                                                      {
00176   // Convert enumerated field strength to a field strength string
00177   
00178   switch (fldstrength) {
00179 
00180   case kNoField:
00181     return "NoField";
00182 
00183   case kLowField:
00184     return "LowField";
00185 
00186   case kHighField:
00187     return "HighField";
00188 
00189   default:
00190     MSG("Geo",Msg::kWarning) 
00191              << "Geo::AsString called with unknown EFldStrength "
00192              << (int)fldstrength << "." << endl;
00193     return "UnknownFldStrength";
00194   }// end of switch
00195 }

const char * Geo::AsString ( Geo::EDetComponent  component  ) 

Definition at line 92 of file Geo.cxx.

References kCRGapBypass, kCRGapCoil, kCRGapFlange, kCRGapThroat, kCRGapWater, kCRSctBypass, kCRSctCoil, kCRSctFlange, kCRSctThroat, kCRSctWater, kCRStlCoil, kCRStlDetail, kCRStlHole, kCRStlNeck, kCRStlThroat, kCRStlWater, kHall, kLinr, kMars, kMdlAir, kMdlAlSkin, kPlnAirGap, kPlnScint, kPlnSteel, kRCAir, kRCCoil, kRCShaft, kSoLo, kStpScint, kStpTiO2, kVSMdlAir, kVSMdlAlSkin, kVSPlnScint, kVSStpScint, kVSStpTiO2, Msg::kWarning, and MSG.

00092                                                     {
00093   // Convert enumerated detector component to a detector component string
00094   
00095   switch (component) {
00096 
00097   case kMars:
00098     return "Mars";
00099   case kLinr:
00100     return "Linr";
00101   case kHall:
00102     return "Hall";
00103   case kStpScint:
00104     return "StpScint";
00105   case kStpTiO2:
00106     return "StpTiO2";
00107   case kMdlAlSkin:
00108     return "MdlAlSkin";
00109   case kMdlAir:
00110     return "MdlAir";
00111   case kPlnScint:
00112     return "PlnScint";
00113   case kPlnSteel:
00114     return "PlnSteel";
00115   case kPlnAirGap:
00116     return "PlnAirGap";
00117   case kCRGapWater:
00118     return "CRGapWater";
00119   case kCRGapCoil:
00120     return "CRGapCoil";
00121   case kCRGapThroat:
00122     return "CRGapThroat";
00123   case kCRGapFlange:
00124     return "CRGapFlange";
00125   case kCRGapBypass:
00126     return "CRGapBypass";
00127   case kCRStlWater:
00128     return "CRStlWater";
00129   case kCRStlCoil:
00130     return "CRStlCoil";
00131   case kCRStlThroat:
00132     return "CRStlThroat";
00133   case kCRStlNeck:
00134     return "CRStlNeck";
00135   case kCRStlHole:
00136     return "CRStlHole";
00137   case kCRStlDetail:
00138     return "CRStlDetail";
00139   case kCRSctWater:
00140     return "CRSctWater";
00141   case kCRSctCoil:
00142     return "CRSctCoil";
00143   case kCRSctThroat:
00144     return "CRSctThroat";
00145   case kCRSctFlange:
00146     return "CRSctFlange";
00147   case kCRSctBypass:
00148     return "CRSctBypass";
00149   case kRCCoil:
00150     return "RCCoil";
00151   case kRCAir:
00152     return "RCAir";
00153   case kRCShaft:
00154     return "RCShaft";
00155   case kVSStpScint:
00156     return "VSStpScint";
00157   case kVSStpTiO2:
00158     return "VSStpTiO2";
00159   case kVSMdlAlSkin:
00160     return "VSMdlAlSkin";
00161   case kVSMdlAir:
00162     return "VSMdlAir";
00163   case kVSPlnScint:
00164     return "VSPlnScint";
00165   case kSoLo:
00166     return "SoLo";
00167   default:
00168     MSG("Geo",Msg::kWarning) << "Geo::AsString called with unknown detector "
00169                              << "component " << (int)component << "." << endl;
00170     return "UnknownDetComponent";
00171   }// end of switch
00172 }

const char * Geo::AsString ( Geo::ESwimMethod  swimmethod  ) 

Definition at line 69 of file Geo.cxx.

References kNoFieldSwim, kRungeKutta, kStepHelix, Msg::kWarning, and MSG.

00069                                                    {
00070   // Convert enumerated swimmethod to a swimmethod string
00071   
00072   switch (swimmethod) {
00073 
00074   case kNoFieldSwim:
00075     return "NoFieldSwim";
00076 
00077   case kRungeKutta:
00078     return "RungeKutta";
00079 
00080   case kStepHelix:
00081     return "StepHelix";
00082 
00083   default:
00084     MSG("Geo",Msg::kWarning) 
00085              << "Geo::AsString called with unknown ESwimMethod "
00086              << (int)swimmethod << "." << endl;
00087     return "UnknownSwimMethod";
00088   }// end of switch
00089 }

const char * Geo::AsString ( Geo::EAppType  apptype  ) 

Definition at line 50 of file Geo.cxx.

References kRecons, kVMC, Msg::kWarning, and MSG.

Referenced by UgliLoanPool::GetMedium(), GetScale(), and UgliLoanPool::SetMedium().

00050                                              {
00051   // Convert enumerated application type to an application type string
00052   
00053   switch (apptype) {
00054 
00055   case kRecons:
00056     return "Recons";
00057 
00058   case kVMC:
00059     return "VMC";
00060 
00061   default:
00062     MSG("Geo",Msg::kWarning) << "Geo::AsString called with unknown apptype "
00063                              << (int)apptype << "." << endl;
00064     return "UnknownAppType";
00065   }// end of switch
00066 }

Geo::EAppType Geo::GetAppType ( const char *  apptypename  ) 

Definition at line 198 of file Geo.cxx.

References kRecons, kUnknownAppType, and kVMC.

Referenced by GeoSteelPlnVolume::BuildCalDetSteelBasic(), GeoScintPlnVolume::BuildFarCoilVolume(), GeoSteelPlnVolume::BuildFarCoilVolume(), GeoScintPlnVolume::BuildFarVetoActive(), GeoScintPlnVolume::BuildNearCoilVolume(), GeoSteelPlnVolume::BuildNearCoilVolume(), GeoScintPlnVolume::BuildNearFullActive(), and GeoScintPlnVolume::BuildNearPartialActive().

00198                                                    {
00199   // Purpose: Convert text string apptype to an enumerated code.
00200   // Returns enumerated EAppType or kUnknown if no match
00201 
00202   TString tmpstr(apptypename);
00203   tmpstr.ToLower();
00204   if ( strcmp(tmpstr.Data(),"recons") == 0 ) return kRecons;
00205   else if ( strcmp(tmpstr.Data(),"vmc") == 0 ) return kVMC;
00206 
00207   return kUnknownAppType;
00208   
00209 }

Geo::EDetComponent Geo::GetDetComponent ( const char *  detcomponentname  ) 

Definition at line 229 of file Geo.cxx.

References kCRGapBypass, kCRGapCoil, kCRGapFlange, kCRGapThroat, kCRGapWater, kCRSctBypass, kCRSctCoil, kCRSctFlange, kCRSctThroat, kCRSctWater, kCRStlCoil, kCRStlDetail, kCRStlHole, kCRStlNeck, kCRStlThroat, kCRStlWater, kHall, kLinr, kMars, kMdlAir, kMdlAlSkin, kPlnAirGap, kPlnScint, kPlnSteel, kRCAir, kRCCoil, kRCShaft, kSoLo, kStpScint, kStpTiO2, kUnknownDetComponent, kVSMdlAir, kVSMdlAlSkin, kVSPlnScint, kVSStpScint, and kVSStpTiO2.

00229                                                                   {
00230   // Purpose: Convert text string detcomponent to an enumerated code.
00231   // Returns enumerated EDetComponent or kUnknownDetComponent if no match
00232 
00233   TString tmpstr(detcomponentname);
00234   tmpstr.ToLower();
00235   if ( strcmp(tmpstr.Data(),"mars") == 0 ) return kMars;
00236   else if ( strcmp(tmpstr.Data(),"linr") == 0 ) return kLinr;
00237   else if ( strcmp(tmpstr.Data(),"hall" ) == 0 ) return kHall;
00238   else if ( strcmp(tmpstr.Data(),"stpscint" ) == 0 ) return kStpScint;
00239   else if ( strcmp(tmpstr.Data(),"stptio2" ) == 0 ) return kStpTiO2;
00240   else if ( strcmp(tmpstr.Data(),"mdlalskin" ) == 0 ) return kMdlAlSkin;
00241   else if ( strcmp(tmpstr.Data(),"mdlair" ) == 0 ) return kMdlAir;
00242   else if ( strcmp(tmpstr.Data(),"plnscint" ) == 0 ) return kPlnScint;
00243   else if ( strcmp(tmpstr.Data(),"plnsteel" ) == 0 ) return kPlnSteel;
00244   else if ( strcmp(tmpstr.Data(),"plnairgap" ) == 0 ) return kPlnAirGap;
00245   else if ( strcmp(tmpstr.Data(),"crgapwater" ) == 0 ) return kCRGapWater;
00246   else if ( strcmp(tmpstr.Data(),"crgapcoil" ) == 0 ) return kCRGapCoil;
00247   else if ( strcmp(tmpstr.Data(),"crgapthroat" ) == 0 ) return kCRGapThroat;
00248   else if ( strcmp(tmpstr.Data(),"crgapflange" ) == 0 ) return kCRGapFlange;
00249   else if ( strcmp(tmpstr.Data(),"crgapbypass" ) == 0 ) return kCRGapBypass;
00250   else if ( strcmp(tmpstr.Data(),"crstlwater" ) == 0 ) return kCRStlWater;
00251   else if ( strcmp(tmpstr.Data(),"crstlcoil" ) == 0 ) return kCRStlCoil;
00252   else if ( strcmp(tmpstr.Data(),"crstlthroat" ) == 0 ) return kCRStlThroat;
00253   else if ( strcmp(tmpstr.Data(),"crstlneck" ) == 0 ) return kCRStlNeck;
00254   else if ( strcmp(tmpstr.Data(),"crstlhole" ) == 0 ) return kCRStlHole;
00255   else if ( strcmp(tmpstr.Data(),"crstldetail" ) == 0 ) return kCRStlDetail;
00256   else if ( strcmp(tmpstr.Data(),"crsctwater" ) == 0 ) return kCRSctWater;
00257   else if ( strcmp(tmpstr.Data(),"crsctcoil" ) == 0 ) return kCRSctCoil;
00258   else if ( strcmp(tmpstr.Data(),"crsctthroat" ) == 0 ) return kCRSctThroat;
00259   else if ( strcmp(tmpstr.Data(),"crsctflange" ) == 0 ) return kCRSctFlange;
00260   else if ( strcmp(tmpstr.Data(),"crsctbypass" ) == 0 ) return kCRSctBypass;
00261   else if ( strcmp(tmpstr.Data(),"rccoil" ) == 0 ) return kRCCoil;
00262   else if ( strcmp(tmpstr.Data(),"rcair" ) == 0 ) return kRCAir;
00263   else if ( strcmp(tmpstr.Data(),"rcshaft" ) == 0 ) return kRCShaft;
00264   else if ( strcmp(tmpstr.Data(),"vsstpscint" ) == 0 ) return kVSStpScint;
00265   else if ( strcmp(tmpstr.Data(),"vsstptio2" ) == 0 ) return kVSStpTiO2;
00266   else if ( strcmp(tmpstr.Data(),"vsmdlalskin" ) == 0 ) return kVSMdlAlSkin;
00267   else if ( strcmp(tmpstr.Data(),"vsmdlair" ) == 0 ) return kVSMdlAir;
00268   else if ( strcmp(tmpstr.Data(),"vsplnscint" ) == 0 ) return kVSPlnScint;
00269   else if ( strcmp(tmpstr.Data(),"solo" ) == 0 ) return kSoLo;
00270   return kUnknownDetComponent;
00271   
00272 }

Geo::EFldStrength Geo::GetFldStrength ( const char *  fldstrengthname  ) 

Definition at line 275 of file Geo.cxx.

References kHighField, kLowField, kNoField, and kUnknownFldStrength.

00275                                                                {
00276   // Purpose: Convert text string fldstrengthname to an enumerated code.
00277   // Returns enumerated EFldStrength or kUnknownFldStrength if no match
00278 
00279   TString tmpstr(fldstrengthname);
00280   tmpstr.ToLower();
00281   if ( strcmp(tmpstr.Data(),"nofield") == 0 ) return kNoField;
00282   else if ( strcmp(tmpstr.Data(),"lowfield") == 0 ) 
00283                                    return kLowField;
00284   else if ( strcmp(tmpstr.Data(),"highfield" ) == 0 )
00285                                    return kHighField;
00286 
00287   return kUnknownFldStrength;
00288   
00289 }

Float_t Geo::GetScale ( Geo::EAppType  apptype  ) 

Definition at line 24 of file Geo.cxx.

References AsString(), Munits::cm, kRecons, kVMC, Msg::kWarning, and MSG.

Referenced by GeoShieldGroup::AddVolume(), GeoGeometry::BuildFarCoilAirGapVolume(), GeoGeometry::BuildNearCoilAirGapVolume(), GeoShieldGroup::BuildNode(), GeoGeometry::GeoGeometry(), GeoStripVolume::GeoStripVolume(), and GenieModule::GetHallExtent().

00024                                          {
00025   // Return the scale factor to be used when building the detector geometry
00026   // The scale factor will be applied to build the geometry in the units
00027   // appropriate for the given application type. 
00028   // GeoGeometry is now built in cm for both vmc and reconstruction. 
00029   // UgliXXXHandle (used by reconstruction) operates in meters, and a
00030   // scale factor is applied as appropriate to "hide" the GeoGeometry
00031   // implementation in cm so that the user of UgliXXXHandle sees a geometry
00032   // built in m.
00033  
00034   switch (apptype) {
00035 
00036   case kRecons:
00037     return 1./Munits::cm;
00038 
00039   case kVMC:
00040     return 1./Munits::cm;
00041 
00042   default:
00043     MSG("Geo",Msg::kWarning) << "Scale factor for application type "
00044                 << Geo::AsString(apptype) << " unavailable." << endl;
00045     return 1;
00046   }// end of switch
00047 }

Geo::ESwimMethod Geo::GetSwimMethod ( const char *  swimmethodname  ) 

Definition at line 212 of file Geo.cxx.

References kNoFieldSwim, kRungeKutta, kStepHelix, and kUnknownSwimMethod.

00212                                                             {
00213   // Purpose: Convert text string swimmethodname to an enumerated code.
00214   // Returns enumerated ESwimMethod or kUnknownSwimMethod if no match
00215 
00216   TString tmpstr(swimmethodname);
00217   tmpstr.ToLower();
00218   if ( strcmp(tmpstr.Data(),"nofieldswim") == 0 ) return kNoFieldSwim;
00219   else if ( strcmp(tmpstr.Data(),"rungekutta") == 0 ) 
00220                                    return kRungeKutta;
00221   else if ( strcmp(tmpstr.Data(),"stephelix" ) == 0 )
00222                                    return kStepHelix;
00223 
00224   return kUnknownSwimMethod;
00225   
00226 }


Variable Documentation

const Float_t Geo::kCalDetSteelWidth = 1.0 * Munits::m
const Float_t Geo::kCoexThick = 0.025 * Munits::cm

Definition at line 25 of file Geo.h.

Referenced by GeoStripVolume::AddPstyreneNodes().

const Float_t Geo::kCoilRad = 12.0 * Munits::cm
const Float_t Geo::kDetailRad = 29.8 * Munits::cm
const Float_t Geo::kFarBypassRad = 19.7 * Munits::cm
const Float_t Geo::kFarModuleHoleRad = 19.7* Munits::cm

Definition at line 30 of file Geo.h.

Referenced by GeoScintMdlVolume::BuildFarDFXtru(), and GeoScintMdlVolume::BuildFardfXtru().

const Float_t Geo::kFarSteelWidth = 8.0 * Munits::m
const Float_t Geo::kFeHoleRad = 15.0 * Munits::cm
const Float_t Geo::kFlangeRad = 17.0 * Munits::cm
const Float_t Geo::kModuleSkinThick = 0.05 * Munits::cm
const Float_t Geo::kNearCoolRad = 0.8255 * Munits::cm
const Float_t Geo::kNearFullBypassRad = 27.9 * Munits::cm
const Float_t Geo::kNearModuleHoleRad = 27.9* Munits::cm

Definition at line 33 of file Geo.h.

Referenced by GeoScintMdlVolume::BuildNearLmXtru(), and GeoScintMdlVolume::BuildNearlMXtru().

const Float_t Geo::kNearPartialBypassRad = 18.0 * Munits::cm

Definition at line 61 of file Geo.h.

Referenced by GeoScintPlnVolume::BuildNearCoilVolume().

const Float_t Geo::kNearXOffset = -55.78 * Munits::cm

Definition at line 40 of file Geo.h.

Referenced by GeoSteelPlnVolume::BuildNearSteelXtru().

const Float_t Geo::kNeckRad = 14.0 * Munits::cm
const Float_t Geo::kStripThick = 1.0 * Munits::cm

Definition at line 22 of file Geo.h.

Referenced by GeoScintMdlVolume::GeoScintMdlVolume(), and GeoStripVolume::GeoStripVolume().

const Float_t Geo::kStripWidth = 4.1 * Munits::cm
const Float_t Geo::kThroatRad = 13.0 * Munits::cm

Generated on 24 Jul 2018 for loon by  doxygen 1.6.1