00001 #ifndef BDSGlobalConstants_h
00002 #define BDSGlobalConstants_h
00003
00004 #include <deque>
00005 #include <map>
00006
00007 #include "G4ThreeVector.hh"
00008 #include "G4String.hh"
00009 #include "G4AffineTransform.hh"
00010
00011 #include "BDSBeamPipeType.hh"
00012 #include "BDSMagnetGeometryType.hh"
00013 #include "BDSParticle.hh"
00014
00015 class G4FieldManager;
00016 class G4LogicalVolume;
00017 class G4ParticleDefinition;
00018 class G4UniformMagField;
00019 class G4UserLimits;
00020 class G4VisAttributes;
00021
00022 class BDSLogicalVolumeInfo;
00023
00024 struct Options;
00025
00026 struct strCmp {
00027 G4bool operator()( const G4String s1, const G4String s2 ) const {
00028 return strcmp(s1,s2) < 0;}
00029 };
00030
00036 class BDSGlobalConstants
00037 {
00038
00039 protected:
00040 BDSGlobalConstants(struct Options&);
00041
00042 private:
00043 static BDSGlobalConstants* _instance;
00044
00045 public:
00047 static BDSGlobalConstants* Instance();
00048 ~BDSGlobalConstants();
00049
00050 G4bool GetDoPlanckScattering()const;
00051 G4bool GetCheckOverlaps()const;
00052 G4double GetMinimumEpsilonStep()const;
00053 G4double GetMaximumEpsilonStep()const;
00054 G4double GetMaxTime()const;
00055 G4double GetDeltaOneStep()const;
00056
00057 G4String StringFromInt(G4int anInt)const;
00058 G4String StringFromDigit(G4int anInt)const;
00059
00060 G4ParticleDefinition* GetParticleDefinition()const;
00061 void SetParticleDefinition(G4ParticleDefinition* aBeamParticleDefinition);
00062 G4String GetParticleName()const;
00063 void SetParticleName(G4String aParticleName);
00064
00065 G4double GetLPBFraction()const;
00066 G4double GetElossHistoBinWidth()const;
00067 G4double GetElossHistoTransBinWidth()const;
00068 G4double GetDefaultRangeCut()const;
00069
00071 G4double GetFFact()const;
00072
00073 G4double GetBeamKineticEnergy()const;
00074 void SetBeamKineticEnergy(G4double val);
00075 G4double GetBeamTotalEnergy()const;
00076 void SetBeamTotalEnergy(G4double val);
00077 G4double GetBeamMomentum()const;
00078 void SetBeamMomentum(G4double val);
00079
00080
00081 G4double GetParticleKineticEnergy()const;
00082 void SetParticleKineticEnergy(G4double val);
00083 G4double GetParticleTotalEnergy()const;
00084 G4double GetParticleMomentum()const;
00085 void SetParticleMomentum(G4double val);
00086
00087 G4double GetPlanckScatterFe()const;
00088
00089 G4double GetGammaToMuFe()const;
00090 G4double GetAnnihiToMuFe()const;
00091 G4double GetEeToHadronsFe()const;
00092 G4bool GetSampleDistRandomly()const;
00093 G4bool GetGeometryBias()const;
00094 G4bool GetUseEMLPB()const;
00095 G4bool GetUseHadLPB()const;
00096
00097 G4bool GetSensitiveComponents()const;
00098 G4bool GetSensitiveBeamPipe()const;
00099 G4bool GetSensitiveBLMs()const;
00100
00101
00102 G4double GetComponentBoxSize()const;
00103 BDSMagnetGeometryType GetMagnetGeometryType()const;
00104 G4String GetOuterMaterialName()const;
00105 G4double GetOuterDiameter()const;
00106 G4double GetMagnetPoleSize()const;
00107 G4double GetMagnetPoleRadius()const;
00108
00109
00110 G4double GetBlmRad()const;
00111 G4double GetBlmLength()const;
00112
00114 G4double GetBeamPipeRadius()const;
00115 G4double GetAper1()const;
00116 G4double GetAper2()const;
00117 G4double GetAper3()const;
00118 G4double GetAper4()const;
00119 G4double GetBeamPipeThickness()const;
00120
00122 G4double GetSamplerDiameter()const;
00123 G4double GetSamplerLength()const;
00124
00126 G4double GetDeltaIntersection()const;
00127 G4double GetDeltaChord()const;
00128 G4double GetChordStepMinimum()const;
00129
00131 G4double GetThresholdCutCharged()const;
00132 G4double GetThresholdCutPhotons()const;
00133
00134 G4double GetProdCutPhotons()const;
00135 G4double GetProdCutPhotonsP()const;
00136 G4double GetProdCutPhotonsA()const;
00137 G4double GetProdCutElectrons()const;
00138 G4double GetProdCutElectronsP()const;
00139 G4double GetProdCutElectronsA()const;
00140 G4double GetProdCutPositrons()const;
00141 G4double GetProdCutPositronsP()const;
00142 G4double GetProdCutPositronsA()const;
00143
00144
00145
00146 G4String GetPhysListName()const;
00147 G4bool GetSynchRadOn()const;
00148 G4bool GetDecayOn()const;
00149 G4bool GetSynchTrackPhotons()const;
00150 G4double GetSynchLowX()const;
00151 G4double GetSynchLowGamE()const;
00152 G4int GetSynchPhotonMultiplicity()const;
00153 G4int GetSynchMeanFreeFactor()const;
00154 G4double GetLaserwireWavelength()const;
00155 G4ThreeVector GetLaserwireDir()const;
00156
00157
00158
00159 G4double GetLaserwireWavelength(G4String aName)const;
00160 G4ThreeVector GetLaserwireDir(G4String aName)const;
00161 void SetLaserwireWavelength(G4String aName, G4double aWavelength);
00162 void SetLaserwireDir(G4String aName, G4ThreeVector aDirection);
00163 G4bool GetLaserwireTrackPhotons()const;
00164 G4bool GetLaserwireTrackElectrons()const;
00165 G4bool GetTurnOnCerenkov()const;
00166 G4bool GetTurnOnOpticalAbsorption()const;
00167 G4bool GetTurnOnRayleighScattering()const;
00168 G4bool GetTurnOnMieScattering()const;
00169 G4bool GetTurnOnOpticalSurface()const;
00170 G4bool GetTurnOnBirksSaturation()const;
00171 G4double GetScintYieldFactor()const;
00172
00173 G4bool GetStoreMuonTrajectories()const;
00174 G4double GetTrajCutGTZ()const;
00175 G4double GetTrajCutLTR()const;
00176 G4bool GetStoreNeutronTrajectories()const;
00177 G4bool GetStoreTrajectory()const;
00178 G4bool GetIncludeIronMagFields()const;
00179 G4bool GetStopTracks()const;
00180 G4bool stopTracks;
00181
00182 G4double GetLengthSafety()const;
00183 G4long GetRandomSeed()const;
00184 G4int GetNumberToGenerate()const;
00185 void SetNumberToGenerate(G4int);
00186 G4int GetNumberOfEventsPerNtuple()const;
00187 G4int GetEventNumberOffset()const;
00188 G4FieldManager* GetZeroFieldManager()const;
00189
00190
00191
00192
00193
00194
00195 void setWaitingForDump(G4bool flag);
00196 G4bool getWaitingForDump()const;
00197 G4bool getDumping()const;
00198 G4bool getReading()const;
00199 void setReadFromStack(G4bool flag);
00200 G4bool getReadFromStack()const;
00201 G4String GetFifo()const;
00202 G4int GetTurnsTaken()const;
00203 void IncrementTurnNumber();
00204 void ResetTurnNumber();
00205 G4int GetTurnsToTake()const;
00206
00207 G4AffineTransform GetDumpTransform()const;
00208 void SetDumpTransform(G4AffineTransform tf);
00209
00210 G4double GetSMax()const;
00211 void SetSMax(G4double);
00212 G4ThreeVector GetTeleporterDelta()const;
00213 void SetTeleporterDelta(G4ThreeVector newteleporterdelta);
00214 void SetTeleporterLength(G4double newteleporterlength);
00215 G4double GetTeleporterLength()const;
00216
00217
00218
00219
00220 BDSLogicalVolumeInfo* GetLogicalVolumeInfo(G4LogicalVolume* logvolpointer)const;
00221
00222 std::map<G4LogicalVolume*,BDSLogicalVolumeInfo*>* LogicalVolumeInfo();
00223
00224 void AddLogicalVolumeInfo(G4LogicalVolume* logvolpointer, BDSLogicalVolumeInfo* bdslogvolinfo);
00225
00227 BDSParticle GetInitialPoint()const;
00228 void SetInitialPoint(BDSParticle& particle);
00229
00230
00231
00232
00233
00234 std::deque<BDSParticle> holdingQueue;
00235 std::deque<BDSParticle> outputQueue;
00236 std::deque<BDSParticle> transformedQueue;
00237
00238 private:
00239
00240 G4UniformMagField* zeroMagField;
00241
00242 G4double itsElossHistoBinWidth;
00243 G4double itsElossHistoTransBinWidth;
00244 G4double itsDefaultRangeCut;
00247 G4double itsFFact;
00248
00249
00250 G4String itsParticleName;
00251 G4ParticleDefinition* itsBeamParticleDefinition;
00253 G4double itsBeamTotalEnergy, itsBeamMomentum, itsBeamKineticEnergy;
00255 G4double itsParticleTotalEnergy, itsParticleMomentum, itsParticleKineticEnergy;
00256 G4double itsLPBFraction;
00257 G4double itsPlanckScatterFe;
00258 G4double itsGammaToMuFe;
00259 G4double itsAnnihiToMuFe;
00260 G4double itsEeToHadronsFe;
00261 G4bool itsSampleDistRandomly;
00262 G4bool itsGeometryBias;
00263 G4bool itsUseEMLPB;
00264 G4bool itsUseHadLPB;
00265 G4double itsMinimumEpsilonStep;
00266 G4double itsMaximumEpsilonStep;
00267 G4double itsMaxTime;
00268 G4double itsDeltaOneStep;
00269
00270
00271 BDSMagnetGeometryType itsMagnetGeometryType;
00272 G4String itsOuterMaterialName;
00273 G4double itsOuterDiameter;
00274
00275 G4double itsMagnetPoleSize;
00276 G4double itsMagnetPoleRadius;
00277
00278
00279 G4bool itsSensitiveComponents;
00280 G4bool itsSensitiveBeamPipe;
00281 G4bool itsSensitiveBLMs;
00282
00283 G4double itsBlmRad;
00284 G4double itsBlmLength;
00285 G4double itsBeamPipeRadius;
00286 G4double itsAper1;
00287 G4double itsAper2;
00288 G4double itsAper3;
00289 G4double itsAper4;
00290 G4double itsBeamPipeThickness;
00291 G4double itsSamplerDiameter;
00292 G4double itsSamplerLength;
00293 G4double itsDeltaIntersection;
00294 G4double itsDeltaChord;
00295 G4double itsChordStepMinimum;
00296 G4double itsThresholdCutCharged;
00297 G4double itsThresholdCutPhotons;
00298 G4double itsProdCutPhotons;
00299 G4double itsProdCutPhotonsP;
00300 G4double itsProdCutPhotonsA;
00301 G4double itsProdCutElectrons;
00302 G4double itsProdCutElectronsP;
00303 G4double itsProdCutElectronsA;
00304 G4double itsProdCutPositrons;
00305 G4double itsProdCutPositronsP;
00306 G4double itsProdCutPositronsA;
00307 G4String itsPhysListName;
00308 G4bool itsSynchRadOn;
00309 G4bool itsDecayOn;
00310 G4bool itsSynchTrackPhotons;
00311 G4double itsSynchLowX;
00312 G4double itsSynchLowGamE;
00313 G4int itsSynchMeanFreeFactor;
00314 G4int itsSynchPhotonMultiplicity;
00315
00316 std::map<const G4String, G4double, strCmp> lwWavelength;
00317 std::map<const G4String, G4ThreeVector, strCmp> lwDirection;
00318 G4double itsLaserwireWavelength;
00319 G4ThreeVector itsLaserwireDir;
00320 G4bool itsLaserwireTrackPhotons;
00321 G4bool itsLaserwireTrackElectrons;
00322 G4bool itsTurnOnCerenkov;
00323 G4bool itsTurnOnOpticalAbsorption;
00324 G4bool itsTurnOnRayleighScattering;
00325 G4bool itsTurnOnMieScattering;
00326 G4bool itsTurnOnOpticalSurface;
00327 G4bool itsTurnOnBirksSaturation;
00328 G4double itsScintYieldFactor;
00329 G4bool itsDoPlanckScattering;
00330 G4bool itsCheckOverlaps;
00331 G4bool itsStoreMuonTrajectories;
00332 G4double itsTrajCutGTZ;
00333 G4double itsTrajCutLTR;
00334 G4bool itsStoreTrajectory;
00335 G4bool itsStoreNeutronTrajectories;
00336 G4bool itsIncludeIronMagFields;
00337 G4double itsLengthSafety;
00338 G4long itsRandomSeed;
00339 G4int itsNumberToGenerate;
00340 G4int itsNumberOfEventsPerNtuple;
00341 G4int itsEventNumberOffset;
00342 G4FieldManager* itsZeroFieldManager;
00343
00344 void InitRotationMatrices();
00345
00346 G4RotationMatrix* _RotY90;
00347 G4RotationMatrix* _RotYM90;
00348 G4RotationMatrix* _RotX90;
00349 G4RotationMatrix* _RotXM90;
00350 G4RotationMatrix* _RotYM90X90;
00351 G4RotationMatrix* _RotYM90XM90;
00352
00353 void InitVisAttributes();
00354 G4VisAttributes* invisibleVisAttr;
00355 G4VisAttributes* visibleDebugVisAttr;
00356
00357 void InitDefaultUserLimits();
00358 G4UserLimits* defaultUserLimits;
00359
00360 public:
00361 G4RotationMatrix* RotY90() const;
00362 G4RotationMatrix* RotYM90() const;
00363 G4RotationMatrix* RotX90() const;
00364 G4RotationMatrix* RotXM90() const;
00365 G4RotationMatrix* RotYM90X90() const;
00366 G4RotationMatrix* RotYM90XM90() const;
00367
00368 G4double GetLWCalWidth()const;
00369 G4double GetLWCalOffset()const;
00370 BDSBeamPipeType GetApertureType()const;
00371 G4String GetBeamPipeMaterialName()const;
00372 G4String GetVacuumMaterial()const;
00373 G4String GetEmptyMaterial()const;
00374
00375 G4VisAttributes* GetInvisibleVisAttr()const;
00376 G4VisAttributes* GetVisibleDebugVisAttr()const;
00377
00378 G4UserLimits* GetDefaultUserLimits()const;
00379
00380 private:
00381 G4double itsLWCalWidth;
00382 G4double itsLWCalOffset;
00383 BDSBeamPipeType itsApertureType;
00384 G4String itsBeamPipeMaterial;
00385 G4String itsVacuumMaterial;
00386 G4String itsEmptyMaterial;
00387 G4bool isWaitingForDump;
00388 G4bool isDumping;
00389 G4bool isReading;
00390 G4bool isReadFromStack;
00391 G4String itsFifo;
00392 G4AffineTransform itsDumpTransform;
00393
00394
00395 G4int itsTurnsTaken;
00396 G4int itsTurnsToTake;
00397
00398 G4ThreeVector teleporterdelta;
00399 G4double teleporterlength;
00400
00401 G4double itsSMax;
00402
00403 std::map<G4LogicalVolume* , BDSLogicalVolumeInfo*> logicalvolumeinfo;
00405 BDSParticle itsInitialPoint;
00406
00407
00408 void SetLPBFraction(G4double val);
00409
00410 };
00411
00412 inline G4double BDSGlobalConstants::GetElossHistoBinWidth()const
00413 {return itsElossHistoBinWidth;}
00414
00415 inline G4double BDSGlobalConstants::GetElossHistoTransBinWidth()const
00416 {return itsElossHistoTransBinWidth;}
00417
00418 inline G4double BDSGlobalConstants::GetDefaultRangeCut()const
00419 {return itsDefaultRangeCut;}
00420
00421 inline G4double BDSGlobalConstants::GetFFact()const
00422 {return itsFFact;}
00423
00424 inline G4double BDSGlobalConstants::GetMinimumEpsilonStep()const
00425 {return itsMinimumEpsilonStep;}
00426
00427 inline G4double BDSGlobalConstants::GetMaximumEpsilonStep()const
00428 {return itsMaximumEpsilonStep;}
00429
00430 inline G4double BDSGlobalConstants::GetMaxTime()const
00431 {return itsMaxTime;}
00432
00433 inline G4double BDSGlobalConstants::GetDeltaOneStep()const
00434 {return itsDeltaOneStep;}
00435
00436 inline G4double BDSGlobalConstants::GetBeamKineticEnergy()const
00437 {return itsBeamKineticEnergy;}
00438
00439 inline void BDSGlobalConstants::SetBeamKineticEnergy(G4double val)
00440 {itsBeamKineticEnergy = val;}
00441
00442 inline G4double BDSGlobalConstants::GetLPBFraction()const
00443 {return itsLPBFraction;}
00444
00445 inline void BDSGlobalConstants::SetLPBFraction(G4double val)
00446 {if(val>1.0)
00447 {itsLPBFraction = 1.0;}
00448 else if(val<0.0)
00449 {itsLPBFraction = 0.0;}
00450 else
00451 {itsLPBFraction = val;}
00452 }
00453
00454 inline G4double BDSGlobalConstants::GetBeamTotalEnergy()const
00455 {return itsBeamTotalEnergy;}
00456
00457 inline void BDSGlobalConstants::SetBeamTotalEnergy(G4double val)
00458 {itsBeamTotalEnergy = val;}
00459
00460 inline G4double BDSGlobalConstants::GetBeamMomentum()const
00461 {return itsBeamMomentum;}
00462
00463 inline void BDSGlobalConstants::SetBeamMomentum(G4double val)
00464 {itsBeamMomentum = val;}
00465
00466 inline G4ParticleDefinition* BDSGlobalConstants::GetParticleDefinition()const
00467 {return itsBeamParticleDefinition;}
00468
00469 inline G4String BDSGlobalConstants::GetParticleName()const
00470 {return itsParticleName;}
00471
00472 inline void BDSGlobalConstants::SetParticleDefinition(G4ParticleDefinition* aBeamParticleDefinition)
00473 {itsBeamParticleDefinition = aBeamParticleDefinition;}
00474
00475 inline void BDSGlobalConstants::SetParticleName(G4String aParticleName)
00476 {itsParticleName = aParticleName;}
00477
00478 inline G4double BDSGlobalConstants::GetPlanckScatterFe()const
00479 {return itsPlanckScatterFe;}
00480
00481 inline G4double BDSGlobalConstants::GetGammaToMuFe()const
00482 {return itsGammaToMuFe;}
00483
00484 inline G4double BDSGlobalConstants::GetAnnihiToMuFe()const
00485 {return itsAnnihiToMuFe;}
00486
00487 inline G4double BDSGlobalConstants::GetEeToHadronsFe()const
00488 {return itsEeToHadronsFe;}
00489
00490 inline G4bool BDSGlobalConstants::GetSampleDistRandomly()const{
00491 return itsSampleDistRandomly;}
00492
00493 inline G4bool BDSGlobalConstants::GetUseEMLPB()const{
00494 return itsUseEMLPB;}
00495
00496 inline G4bool BDSGlobalConstants::GetUseHadLPB()const{
00497 return itsUseHadLPB;}
00498
00499
00500 inline G4bool BDSGlobalConstants::GetSensitiveComponents()const
00501 {return itsSensitiveComponents;}
00502
00503 inline G4bool BDSGlobalConstants::GetSensitiveBeamPipe()const
00504 {return itsSensitiveBeamPipe;}
00505
00506 inline G4bool BDSGlobalConstants::GetSensitiveBLMs()const
00507 {return itsSensitiveBLMs;}
00508
00509 inline BDSMagnetGeometryType BDSGlobalConstants::GetMagnetGeometryType()const
00510 {return itsMagnetGeometryType;}
00511
00512 inline G4String BDSGlobalConstants::GetOuterMaterialName()const
00513 {return itsOuterMaterialName;}
00514
00515 inline G4double BDSGlobalConstants::GetOuterDiameter()const
00516 {return itsOuterDiameter;}
00517
00518 inline G4double BDSGlobalConstants::GetComponentBoxSize()const
00519 {return itsOuterDiameter;}
00520
00521 inline G4double BDSGlobalConstants::GetMagnetPoleSize()const
00522 {return itsMagnetPoleSize;}
00523
00524 inline G4double BDSGlobalConstants::GetMagnetPoleRadius()const
00525 {return itsMagnetPoleRadius;}
00526
00527 inline G4bool BDSGlobalConstants::GetGeometryBias()const
00528 {return itsGeometryBias;}
00529
00530
00531
00532 inline G4double BDSGlobalConstants::GetBlmRad()const
00533 {return itsBlmRad;}
00534
00535 inline G4double BDSGlobalConstants::GetBlmLength()const
00536 {return itsBlmLength;}
00537
00538 inline G4double BDSGlobalConstants::GetBeamPipeRadius()const
00539 {return itsBeamPipeRadius;}
00540
00541 inline G4double BDSGlobalConstants::GetAper1()const
00542 {return itsAper1;}
00543
00544 inline G4double BDSGlobalConstants::GetAper2()const
00545 {return itsAper2;}
00546
00547 inline G4double BDSGlobalConstants::GetAper3()const
00548 {return itsAper3;}
00549
00550 inline G4double BDSGlobalConstants::GetAper4()const
00551 {return itsAper4;}
00552
00553 inline G4double BDSGlobalConstants::GetBeamPipeThickness()const
00554 {return itsBeamPipeThickness;}
00555
00556 inline G4double BDSGlobalConstants::GetSamplerDiameter()const
00557 {return itsSamplerDiameter;}
00558
00559 inline G4double BDSGlobalConstants::GetSamplerLength()const
00560 {return itsSamplerLength;}
00561
00562 inline G4double BDSGlobalConstants::GetDeltaChord()const
00563 {return itsDeltaChord;}
00564
00565 inline G4double BDSGlobalConstants::GetDeltaIntersection()const
00566 {return itsDeltaIntersection;}
00567
00568 inline G4double BDSGlobalConstants::GetChordStepMinimum()const
00569 {return itsChordStepMinimum;}
00570
00571 inline G4double BDSGlobalConstants::GetThresholdCutCharged()const
00572 {return itsThresholdCutCharged;}
00573
00574 inline G4double BDSGlobalConstants::GetThresholdCutPhotons()const
00575 {return itsThresholdCutPhotons;}
00576
00577 inline G4double BDSGlobalConstants::GetProdCutPhotons()const
00578 {return itsProdCutPhotons;}
00579
00580 inline G4double BDSGlobalConstants::GetProdCutPhotonsP()const
00581 {return itsProdCutPhotonsP;}
00582
00583 inline G4double BDSGlobalConstants::GetProdCutPhotonsA()const
00584 {return itsProdCutPhotonsA;}
00585
00586 inline G4double BDSGlobalConstants::GetProdCutElectrons()const
00587 {return itsProdCutElectrons;}
00588
00589 inline G4double BDSGlobalConstants::GetProdCutElectronsP()const
00590 {return itsProdCutElectronsP;}
00591
00592 inline G4double BDSGlobalConstants::GetProdCutElectronsA()const
00593 {return itsProdCutElectronsA;}
00594
00595 inline G4double BDSGlobalConstants::GetProdCutPositrons()const
00596 {return itsProdCutPositrons;}
00597
00598 inline G4double BDSGlobalConstants::GetProdCutPositronsP()const
00599 {return itsProdCutPositronsP;}
00600
00601 inline G4double BDSGlobalConstants::GetProdCutPositronsA()const
00602 {return itsProdCutPositronsA;}
00603
00604 inline G4String BDSGlobalConstants::GetPhysListName()const
00605 {return itsPhysListName;}
00606
00607 inline G4bool BDSGlobalConstants::GetSynchRadOn()const
00608 {return itsSynchRadOn;}
00609
00610 inline G4bool BDSGlobalConstants::GetDecayOn()const
00611 {return itsDecayOn;}
00612
00613 inline G4bool BDSGlobalConstants::GetSynchTrackPhotons()const
00614 {return itsSynchTrackPhotons ;}
00615
00616 inline G4double BDSGlobalConstants::GetSynchLowX()const
00617 {return itsSynchLowX ;}
00618
00619 inline G4double BDSGlobalConstants::GetSynchLowGamE()const
00620 {return itsSynchLowGamE ;}
00621
00622 inline G4int BDSGlobalConstants::GetSynchPhotonMultiplicity()const
00623 {return itsSynchPhotonMultiplicity ;}
00624
00625 inline G4int BDSGlobalConstants::GetSynchMeanFreeFactor()const
00626 {return itsSynchMeanFreeFactor ;}
00627
00628 inline G4double BDSGlobalConstants::GetLaserwireWavelength()const
00629 {return itsLaserwireWavelength ;}
00630
00631 inline G4ThreeVector BDSGlobalConstants::GetLaserwireDir()const
00632 {return itsLaserwireDir ;}
00633
00634 inline G4bool BDSGlobalConstants::GetLaserwireTrackPhotons()const
00635 {return itsLaserwireTrackPhotons ;}
00636
00637 inline G4bool BDSGlobalConstants::GetLaserwireTrackElectrons()const
00638 {return itsLaserwireTrackElectrons ;}
00639
00640 inline G4double BDSGlobalConstants::GetLengthSafety()const
00641 {return itsLengthSafety;}
00642
00643 inline G4bool BDSGlobalConstants::GetTurnOnCerenkov()const
00644 {return itsTurnOnCerenkov;}
00645
00646 inline G4bool BDSGlobalConstants::GetTurnOnOpticalAbsorption()const
00647 { return itsTurnOnOpticalAbsorption;}
00648
00649 inline G4bool BDSGlobalConstants::GetTurnOnRayleighScattering()const
00650 {return itsTurnOnRayleighScattering;}
00651
00652 inline G4bool BDSGlobalConstants::GetTurnOnMieScattering()const
00653 {return itsTurnOnMieScattering;}
00654
00655 inline G4bool BDSGlobalConstants::GetTurnOnOpticalSurface()const
00656 {return itsTurnOnOpticalSurface;}
00657
00658 inline G4bool BDSGlobalConstants::GetTurnOnBirksSaturation()const
00659 {return itsTurnOnBirksSaturation;}
00660
00661 inline G4double BDSGlobalConstants::GetScintYieldFactor()const
00662 {return itsScintYieldFactor;}
00663
00664 inline G4bool BDSGlobalConstants::GetIncludeIronMagFields()const
00665 {return itsIncludeIronMagFields;}
00666
00667 inline G4bool BDSGlobalConstants::GetStoreMuonTrajectories()const
00668 {return itsStoreMuonTrajectories;}
00669
00670 inline G4double BDSGlobalConstants::GetTrajCutGTZ()const
00671 {return itsTrajCutGTZ;}
00672
00673 inline G4double BDSGlobalConstants::GetTrajCutLTR()const
00674 {return itsTrajCutLTR;}
00675
00676 inline G4bool BDSGlobalConstants::GetStoreNeutronTrajectories()const
00677 {return itsStoreNeutronTrajectories;}
00678
00679 inline G4bool BDSGlobalConstants::GetStoreTrajectory()const
00680 {return itsStoreTrajectory;}
00681
00682 inline G4bool BDSGlobalConstants::GetStopTracks()const
00683 {return stopTracks;}
00684
00685 inline G4long BDSGlobalConstants::GetRandomSeed()const
00686 {return itsRandomSeed;}
00687
00688 inline G4int BDSGlobalConstants::GetNumberToGenerate()const
00689 {return itsNumberToGenerate;}
00690
00691 inline void BDSGlobalConstants::SetNumberToGenerate(G4int numberToGenerate)
00692 {itsNumberToGenerate = numberToGenerate;}
00693
00694 inline G4int BDSGlobalConstants::GetNumberOfEventsPerNtuple()const
00695 {return itsNumberOfEventsPerNtuple;}
00696
00697 inline G4int BDSGlobalConstants::GetEventNumberOffset()const
00698 {return itsEventNumberOffset;}
00699
00700 inline G4FieldManager* BDSGlobalConstants::GetZeroFieldManager()const
00701 {return itsZeroFieldManager;}
00702
00703 inline G4double BDSGlobalConstants::GetLWCalWidth()const
00704 {return itsLWCalWidth;}
00705
00706 inline G4double BDSGlobalConstants::GetLWCalOffset()const
00707 {return itsLWCalOffset;}
00708
00709 inline BDSBeamPipeType BDSGlobalConstants::GetApertureType()const
00710 {return itsApertureType;}
00711
00712 inline G4String BDSGlobalConstants::GetBeamPipeMaterialName()const
00713 {return itsBeamPipeMaterial;}
00714
00715 inline G4String BDSGlobalConstants::GetVacuumMaterial()const
00716 {return itsVacuumMaterial;}
00717
00718 inline G4String BDSGlobalConstants::GetEmptyMaterial()const
00719 {return itsEmptyMaterial;}
00720
00721 inline G4bool BDSGlobalConstants::GetDoPlanckScattering()const
00722 {return itsDoPlanckScattering;}
00723
00724 inline G4bool BDSGlobalConstants::GetCheckOverlaps()const
00725 {return itsCheckOverlaps;}
00726
00727
00728 inline G4double BDSGlobalConstants::GetLaserwireWavelength(G4String aName)const
00729 {return lwWavelength.at(aName);}
00730
00731
00732 inline G4ThreeVector BDSGlobalConstants::GetLaserwireDir(G4String aName)const
00733 {return lwDirection.at(aName);}
00734
00735 inline void BDSGlobalConstants::SetLaserwireWavelength(G4String aName, G4double aWavelength)
00736 {lwWavelength[aName]=aWavelength;}
00737
00738 inline void BDSGlobalConstants::SetLaserwireDir(G4String aName, G4ThreeVector aDirection)
00739 {lwDirection[aName]=aDirection;}
00740
00741 inline void BDSGlobalConstants::setWaitingForDump(G4bool flag)
00742 {isWaitingForDump = flag;}
00743
00744 inline G4bool BDSGlobalConstants::getWaitingForDump()const
00745 {return isWaitingForDump;}
00746
00747 inline G4bool BDSGlobalConstants::getDumping()const
00748 {return isDumping;}
00749
00750 inline G4bool BDSGlobalConstants::getReading()const
00751 {return isReading;}
00752
00753 inline void BDSGlobalConstants::setReadFromStack(G4bool flag)
00754 {isReadFromStack = flag;}
00755
00756 inline G4bool BDSGlobalConstants::getReadFromStack()const
00757 {return isReadFromStack;}
00758
00759 inline G4String BDSGlobalConstants::GetFifo()const
00760 {return itsFifo;}
00761
00762 inline G4AffineTransform BDSGlobalConstants::GetDumpTransform()const
00763 {return itsDumpTransform;}
00764
00765 inline void BDSGlobalConstants::SetDumpTransform(G4AffineTransform tf)
00766 {itsDumpTransform=tf;}
00767
00768 inline G4int BDSGlobalConstants::GetTurnsTaken()const
00769 {return itsTurnsTaken;}
00770
00771 inline void BDSGlobalConstants::IncrementTurnNumber()
00772 {itsTurnsTaken += 1;}
00773
00774 inline void BDSGlobalConstants::ResetTurnNumber()
00775 {itsTurnsTaken = 1;}
00776
00777 inline G4int BDSGlobalConstants::GetTurnsToTake()const
00778 {return itsTurnsToTake;}
00779
00780 inline G4double BDSGlobalConstants::GetSMax()const
00781 {return itsSMax;}
00782
00783 inline void BDSGlobalConstants::SetSMax(G4double smax)
00784 {itsSMax=smax;}
00785
00786 inline G4ThreeVector BDSGlobalConstants::GetTeleporterDelta()const
00787 {return teleporterdelta;}
00788
00789 inline void BDSGlobalConstants::SetTeleporterDelta(G4ThreeVector newteleporterdelta)
00790 {teleporterdelta = newteleporterdelta;}
00791
00792 inline void BDSGlobalConstants::SetTeleporterLength(G4double newteleporterlength)
00793 {teleporterlength = newteleporterlength;}
00794
00795 inline G4double BDSGlobalConstants::GetTeleporterLength()const
00796 {return teleporterlength;}
00797
00798 inline BDSLogicalVolumeInfo* BDSGlobalConstants::GetLogicalVolumeInfo(G4LogicalVolume* logvolpointer)const
00799 {return logicalvolumeinfo.at(logvolpointer);}
00800
00801 inline void BDSGlobalConstants::AddLogicalVolumeInfo(G4LogicalVolume* logvolpointer, BDSLogicalVolumeInfo* logvolinfo)
00802 {logicalvolumeinfo[logvolpointer] = logvolinfo;}
00803
00804 inline std::map<G4LogicalVolume*,BDSLogicalVolumeInfo*>* BDSGlobalConstants::LogicalVolumeInfo()
00805 {return &logicalvolumeinfo;}
00806
00807 inline G4double BDSGlobalConstants::GetParticleKineticEnergy()const
00808 {return itsParticleKineticEnergy;}
00809
00810 inline void BDSGlobalConstants::SetParticleKineticEnergy(G4double val)
00811 {itsParticleKineticEnergy = val;}
00812
00813 inline G4double BDSGlobalConstants::GetParticleTotalEnergy()const
00814 {return itsParticleTotalEnergy;}
00815
00816 inline G4double BDSGlobalConstants::GetParticleMomentum()const
00817 {return itsParticleMomentum;}
00818
00819 inline void BDSGlobalConstants::SetParticleMomentum(G4double val)
00820 {itsParticleMomentum = val;}
00821
00822 inline BDSParticle BDSGlobalConstants::GetInitialPoint()const
00823 {return itsInitialPoint;}
00824
00825 inline void BDSGlobalConstants::SetInitialPoint(BDSParticle& particle)
00826 {itsInitialPoint = particle;}
00827
00828 inline G4VisAttributes* BDSGlobalConstants::GetInvisibleVisAttr()const
00829 {return invisibleVisAttr;}
00830
00831 inline G4VisAttributes* BDSGlobalConstants::GetVisibleDebugVisAttr()const
00832 {return visibleDebugVisAttr;}
00833
00834 inline G4UserLimits* BDSGlobalConstants::GetDefaultUserLimits()const
00835 {return defaultUserLimits;}
00836
00837 #endif