G4Region.icc

Go to the documentation of this file.
00001 //
00002 // ********************************************************************
00003 // * License and Disclaimer                                           *
00004 // *                                                                  *
00005 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
00006 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
00007 // * conditions of the Geant4 Software License,  included in the file *
00008 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
00009 // * include a list of copyright holders.                             *
00010 // *                                                                  *
00011 // * Neither the authors of this software system, nor their employing *
00012 // * institutes,nor the agencies providing financial support for this *
00013 // * work  make  any representation or  warranty, express or implied, *
00014 // * regarding  this  software system or assume any liability for its *
00015 // * use.  Please see the license in the file  LICENSE  and URL above *
00016 // * for the full disclaimer and the limitation of liability.         *
00017 // *                                                                  *
00018 // * This  code  implementation is the result of  the  scientific and *
00019 // * technical work of the GEANT4 collaboration.                      *
00020 // * By using,  copying,  modifying or  distributing the software (or *
00021 // * any work based  on the software)  you  agree  to acknowledge its *
00022 // * use  in  resulting  scientific  publications,  and indicate your *
00023 // * acceptance of all terms of the Geant4 Software license.          *
00024 // ********************************************************************
00025 //
00026 //
00027 // $Id$
00028 //
00029 // 
00030 // class G4Region Inline Implementation file
00031 //
00032 // 19.09.02 - G.Cosmo: Created
00033 // --------------------------------------------------------------------
00034 
00035 // ********************************************************************
00036 // Equality operator, defined by address only
00037 // ********************************************************************
00038 //
00039 inline
00040 G4bool G4Region::operator==(const G4Region& rg) const
00041 {
00042   return (this==&rg) ? true : false;
00043 }
00044 
00045 // ********************************************************************
00046 // GetName
00047 // ********************************************************************
00048 //
00049 inline
00050 const G4String& G4Region::GetName() const
00051 {
00052   return fName;
00053 }
00054     
00055 // ********************************************************************
00056 // SetName
00057 // ********************************************************************
00058 //
00059 inline
00060 void G4Region::SetName(const G4String& pName)
00061 {
00062   fName = pName;
00063 }
00064 
00065 // ********************************************************************
00066 // RegionModified
00067 // ********************************************************************
00068 //
00069 inline
00070 void G4Region::RegionModified(G4bool flag)
00071 {
00072   fRegionMod = flag;
00073 }
00074 
00075 // ********************************************************************
00076 // IsModified
00077 // ********************************************************************
00078 //
00079 inline
00080 G4bool G4Region::IsModified() const
00081 {
00082   return fRegionMod;
00083 }
00084 
00085 // ********************************************************************
00086 // SetProductionCuts
00087 // ********************************************************************
00088 //
00089 inline
00090 void G4Region::SetProductionCuts(G4ProductionCuts* cut)
00091 {
00092   fCut = cut;
00093   fRegionMod = true;
00094 }
00095 
00096 // ********************************************************************
00097 // GetProductionCuts
00098 // ********************************************************************
00099 //
00100 inline
00101 G4ProductionCuts* G4Region::GetProductionCuts() const
00102 {
00103   return fCut;
00104 }
00105 
00106 // ********************************************************************
00107 // GetLogicalVolumeIterator
00108 // ********************************************************************
00109 //
00110 inline
00111 std::vector<G4LogicalVolume*>::iterator
00112 G4Region::GetRootLogicalVolumeIterator()
00113 {
00114   G4RootLVList::iterator iterator =
00115     G4RootLVList::iterator(fRootVolumes.begin());
00116   return iterator;
00117 }
00118 
00119 // ********************************************************************
00120 // GetMaterialIterator
00121 // ********************************************************************
00122 //
00123 inline
00124 std::vector<G4Material*>::const_iterator
00125 G4Region::GetMaterialIterator() const
00126 {
00127   G4MaterialList::const_iterator iterator = fMaterials.begin();
00128   return iterator;
00129 }
00130 
00131 // ********************************************************************
00132 // GetNumberOfMaterials
00133 // ********************************************************************
00134 //
00135 inline
00136 size_t G4Region::GetNumberOfMaterials() const
00137 {
00138   return fMaterials.size();
00139 }
00140 
00141 // ********************************************************************
00142 // GetNumberOfRootVolumes
00143 // ********************************************************************
00144 //
00145 inline
00146 size_t G4Region::GetNumberOfRootVolumes() const
00147 {
00148   return fRootVolumes.size();
00149 }
00150 
00151 // ********************************************************************
00152 // SetUserInformation
00153 // ********************************************************************
00154 //
00155 inline
00156 void G4Region::SetUserInformation(G4VUserRegionInformation* ui)
00157 {
00158   fUserInfo = ui;
00159 }
00160 
00161 // ********************************************************************
00162 // GetUserInformation
00163 // ********************************************************************
00164 //
00165 inline
00166 G4VUserRegionInformation* G4Region::GetUserInformation() const
00167 {
00168   return fUserInfo;
00169 }
00170 
00171 // ********************************************************************
00172 // SetUserLimits
00173 // ********************************************************************
00174 //
00175 inline
00176 void G4Region::SetUserLimits(G4UserLimits* ul)
00177 {
00178   fUserLimits = ul;
00179 }
00180 
00181 // ********************************************************************
00182 // GetUserLimits
00183 // ********************************************************************
00184 //
00185 inline
00186 G4UserLimits* G4Region::GetUserLimits() const
00187 {
00188   return fUserLimits;
00189 }
00190 
00191 // ********************************************************************
00192 // ClearMap
00193 // ********************************************************************
00194 //
00195 inline
00196 void G4Region::ClearMap()
00197 {
00198   if(!(fMaterialCoupleMap.empty()))
00199   {
00200     G4MaterialCoupleMap::iterator b = fMaterialCoupleMap.begin();
00201     G4MaterialCoupleMap::iterator e = fMaterialCoupleMap.end();
00202     fMaterialCoupleMap.erase(b,e);
00203   }
00204 }
00205 
00206 // ********************************************************************
00207 // RegisterMateralCouplePair
00208 // ********************************************************************
00209 //
00210 inline
00211 void G4Region::RegisterMaterialCouplePair(G4Material* mat,
00212                                           G4MaterialCutsCouple* couple)
00213 {
00214   fMaterialCoupleMap.insert(G4MaterialCouplePair(mat,couple));
00215 }
00216 
00217 // ********************************************************************
00218 // FindCouple
00219 // ********************************************************************
00220 //
00221 inline
00222 G4MaterialCutsCouple* G4Region::FindCouple(G4Material* mat)
00223 {
00224   G4MaterialCoupleMap::iterator c = fMaterialCoupleMap.find(mat);
00225   G4MaterialCutsCouple* couple = 0;
00226   if(c!=fMaterialCoupleMap.end()) couple = (*c).second;
00227   return couple;
00228 }
00229 
00230 // ********************************************************************
00231 // SetFastSimulationManager
00232 // ********************************************************************
00233 //
00234 inline
00235 void G4Region::SetFastSimulationManager(G4FastSimulationManager* fsm)
00236 {
00237   fFastSimulationManager = fsm;
00238 }
00239 
00240 // ********************************************************************
00241 // GetFastSimulationManager
00242 // ********************************************************************
00243 //
00244 inline 
00245 G4FastSimulationManager* G4Region::GetFastSimulationManager() const
00246 {
00247   return fFastSimulationManager;
00248 }
00249 
00250 // ********************************************************************
00251 // GetFieldManager
00252 // ********************************************************************
00253 //
00254 inline 
00255 G4FieldManager* G4Region::GetFieldManager() const
00256 {
00257   return fFieldManager;
00258 }
00259 
00260 // ********************************************************************
00261 // SetFieldManager
00262 // ********************************************************************
00263 //
00264 inline
00265 void G4Region::SetFieldManager(G4FieldManager* fm)
00266 {
00267   fFieldManager = fm;
00268 }
00269 
00270 // ********************************************************************
00271 // GetWorldPhysical
00272 // ********************************************************************
00273 //
00274 inline
00275 G4VPhysicalVolume* G4Region::GetWorldPhysical() const
00276 {
00277   return fWorldPhys;
00278 }
00279 
00280 // ********************************************************************
00281 // AddMaterial
00282 // ********************************************************************
00283 //
00284 inline
00285 void G4Region::AddMaterial(G4Material* aMaterial)
00286 {
00287   G4MaterialList::iterator pos =
00288     std::find(fMaterials.begin(),fMaterials.end(),aMaterial);
00289   if (pos == fMaterials.end())
00290   {
00291     fMaterials.push_back(aMaterial);
00292     fRegionMod = true;
00293   }
00294 }
00295 
00296 // ********************************************************************
00297 // SetRegionalSteppingAction
00298 // ********************************************************************
00299 //
00300 inline
00301 void G4Region::SetRegionalSteppingAction(G4UserSteppingAction* rusa)
00302 {
00303   fRegionalSteppingAction = rusa;
00304 }
00305 
00306 // ********************************************************************
00307 // GetRegionalSteppingAction
00308 // ********************************************************************
00309 //
00310 inline
00311 G4UserSteppingAction* G4Region::GetRegionalSteppingAction() const
00312 {
00313   return fRegionalSteppingAction;
00314 }
00315 
00316 // ********************************************************************
00317 // UsedInMassGeometry
00318 // ********************************************************************
00319 //
00320 inline 
00321 void G4Region::UsedInMassGeometry(G4bool val)
00322 {
00323   fInMassGeometry = val;
00324 }
00325 
00326 // ********************************************************************
00327 // UsedInParallelGeometry
00328 // ********************************************************************
00329 //
00330 inline 
00331 void G4Region::UsedInParallelGeometry(G4bool val)
00332 {
00333   fInParallelGeometry = val;
00334 }
00335 
00336 // ********************************************************************
00337 // IsInMassGeometry
00338 // ********************************************************************
00339 //
00340 inline 
00341 G4bool G4Region::IsInMassGeometry() const
00342 {
00343   return fInMassGeometry;
00344 }
00345 
00346 // ********************************************************************
00347 // IsInParallelGeometry
00348 // ********************************************************************
00349 //
00350 inline 
00351 G4bool G4Region::IsInParallelGeometry() const
00352 {
00353   return fInParallelGeometry;
00354 }

Generated on Mon May 27 17:49:43 2013 for Geant4 by  doxygen 1.4.7