00001
00007
00008
00009 #ifndef BDSGlobalConstants_h
00010 #define BDSGlobalConstants_h
00011
00012 #include <fstream>
00013 #include <string>
00014 #include <set>
00015 #include <deque>
00016
00017 #include "G4ParticleTable.hh"
00018 #include "G4ParticleDefinition.hh"
00019 #include "G4UniformMagField.hh"
00020 #include "G4ThreeVector.hh"
00021 #include "globals.hh"
00022 #include "G4FieldManager.hh"
00023 #include "G4String.hh"
00024 #include "G4AffineTransform.hh"
00025
00026 struct Options;
00027
00028 struct strCmp {
00029 G4bool operator()( const G4String s1, const G4String s2 ) {
00030 return strcmp(s1,s2) < 0;}
00031 };
00032
00033 struct tmpParticle {
00034 G4double E;
00035 G4double x;
00036 G4double y;
00037 G4double z;
00038 G4double t;
00039 G4double xp;
00040 G4double yp;
00041 G4double zp;
00042 G4double weight;
00043 G4int trackID;
00044 G4int parentID;
00045 };
00046
00047
00048
00049
00050
00051
00052
00053
00054 class BDSGlobalConstants
00055 {
00056 public:
00057
00058 static BDSGlobalConstants* Instance();
00059 ~BDSGlobalConstants();
00060
00061
00062
00063 G4double GetPI();
00064
00065 G4bool GetDoPlanckScattering();
00066
00067 G4bool GetCheckOverlaps();
00068
00069 G4bool DoTwiss();
00070 void SetDoTwiss(G4bool val);
00071
00072
00073 G4double GetMinimumEpsilonStep();
00074 G4double GetMaximumEpsilonStep();
00075 G4double GetMaxTime();
00076 G4double GetDeltaOneStep();
00077
00078 void SetLogFile(std::ofstream & os);
00079 void StripHeader(std::istream& is);
00080
00081 G4String StringFromInt(G4int anInt);
00082 G4String StringFromDigit(G4int anInt);
00083
00084 G4ParticleDefinition* GetParticleDefinition();
00085 void SetParticleDefinition(G4ParticleDefinition* aBeamParticleDefinition);
00086
00087 G4String GetParticleName();
00088 void SetParticleName(G4String aParticleName);
00089
00090 G4double GetLPBFraction();
00091 void SetLPBFraction(G4double val);
00092
00093 G4double GetElossHistoBinWidth();
00094 G4double GetElossHistoTransBinWidth();
00095 G4double GetDefaultRangeCut();
00096
00097 G4double GetFFact();
00098
00099 G4double GetBeamKineticEnergy();
00100 void SetBeamKineticEnergy(G4double val);
00101
00102 G4double GetBeamTotalEnergy();
00103 void SetBeamTotalEnergy(G4double val);
00104
00105 G4double GetBeamMomentum();
00106 void SetBeamMomentum(G4double val);
00107
00108 G4double GetVacuumPressure();
00109 G4double GetPlanckScatterFe();
00110
00111 G4double GetGammaToMuFe();
00112 G4double GetAnnihiToMuFe();
00113 G4double GetEeToHadronsFe();
00114
00115 G4bool GetSampleDistRandomly();
00116 G4bool GetGeometryBias();
00117 G4bool GetUseEMLPB();
00118 G4bool GetUseHadLPB();
00119
00120
00121 G4bool GetSensitiveComponents();
00122 G4bool GetSensitiveBeamPipe();
00123 G4bool GetSensitiveBLMs();
00124
00125 void SetTotalS(G4double TotalS);
00126 G4double GetTotalS();
00127
00128 G4double GetComponentBoxSize();
00129 G4double GetMagnetPoleSize();
00130 G4double GetMagnetPoleRadius();
00131
00132 G4bool GetBuildTunnel();
00133 G4bool GetBuildTunnelFloor();
00134 G4bool GetShowTunnel();
00135 G4double GetTunnelRadius();
00136 void SetTunnelRadius(G4double radius);
00137 G4double GetTunnelThickness();
00138 G4double GetTunnelSoilThickness();
00139 G4double GetTunnelFloorOffset();
00140 G4double GetTunnelOffsetX();
00141 G4double GetTunnelOffsetY();
00142
00143
00144 G4double GetBlmRad();
00145 G4double GetBlmLength();
00146
00147 G4double GetBeampipeRadius();
00148 G4double GetBeampipeThickness();
00149
00150 G4double GetSamplerDiameter();
00151 G4double GetSamplerLength();
00152
00153 G4double GetDeltaIntersection();
00154 G4double GetDeltaChord();
00155 G4double GetChordStepMinimum();
00156
00157 G4double GetThresholdCutCharged();
00158 G4double GetThresholdCutPhotons();
00159
00160 G4double GetProdCutPhotons();
00161 G4double GetProdCutPhotonsP();
00162 G4double GetProdCutElectrons();
00163 G4double GetProdCutElectronsP();
00164 G4double GetProdCutPositrons();
00165 G4double GetProdCutPositronsP();
00166
00167
00168 G4String GetBDSIMHOME();
00169
00170
00171
00172 G4String GetPhysListName();
00173 void SetPhysListName(G4String val);
00174
00175 G4bool GetSynchRadOn();
00176 G4bool GetDecayOn();
00177 G4bool GetSynchRescale();
00178 void SetSynchRescale(G4bool srRescale);
00179 G4bool GetSynchTrackPhotons();
00180 void SetSynchTrackPhotons(G4bool srTrackPhotons);
00181 G4double GetSynchLowX();
00182 G4double GetSynchLowGamE();
00183 G4int GetSynchPhotonMultiplicity();
00184 G4int GetSynchMeanFreeFactor();
00185
00186 G4double GetLaserwireWavelength();
00187 G4ThreeVector GetLaserwireDir();
00188
00189
00190
00191 G4double GetLaserwireWavelength(G4String aName);
00192 G4ThreeVector GetLaserwireDir(G4String aName);
00193 void SetLaserwireWavelength(G4String aName, G4double aWavelength);
00194 void SetLaserwireDir(G4String aName, G4ThreeVector aDirection);
00195
00196 G4bool GetLaserwireTrackPhotons();
00197 G4bool GetLaserwireTrackElectrons();
00198
00199 G4bool GetTurnOnCerenkov();
00200
00201 G4bool GetStoreMuonTrajectories();
00202 G4double GetTrajCutGTZ();
00203 G4double GetTrajCutLTR();
00204
00205 G4bool GetStoreNeutronTrajectories();
00206 G4bool GetStoreTrajectory();
00207
00208 G4bool GetIncludeIronMagFields();
00209
00210 G4bool GetStopTracks();
00211 void SetStopTracks(G4bool);
00212 G4bool stopTracks;
00213
00214 G4double GetLengthSafety();
00215
00216 std::ofstream GetEventOutput();
00217
00218 G4long GetRandomSeed();
00219 G4bool GetUseBatch();
00220 G4int GetNumberToGenerate();
00221
00222 G4int GetNumberOfEventsPerNtuple();
00223
00224 G4int GetEventNumberOffset();
00225
00226
00227
00228 G4FieldManager* GetZeroFieldManager();
00229
00230 G4bool GetUseSynchPrimaryGen();
00231 G4double GetSynchPrimaryAngle();
00232 G4double GetSynchPrimaryLength();
00233
00234
00235 void setWaitingForDump(G4bool flag);
00236 G4bool getWaitingForDump();
00237
00238 void setDumping(G4bool flag);
00239 G4bool getDumping();
00240
00241 void setReading(G4bool flag);
00242 G4bool getReading();
00243
00244 void setReadFromStack(G4bool flag);
00245 G4bool getReadFromStack();
00246
00247 G4String GetFifo();
00248
00249 G4AffineTransform GetDumpTransform();
00250 void SetDumpTransform(G4AffineTransform tf);
00251
00252 G4String GetRefVolume();
00253 G4int GetRefCopyNo();
00254
00255 const G4AffineTransform* GetRefTransform();
00256 void SetRefTransform(G4AffineTransform& aTransform);
00257
00258
00259 std::ofstream fileDump;
00260
00261
00262 std::deque<tmpParticle> holdingQueue;
00263 std::deque<tmpParticle> outputQueue;
00264 std::deque<tmpParticle> transformedQueue;
00265 std::deque<G4double*> referenceQueue;
00266 G4bool isReference;
00267
00268 protected:
00269 BDSGlobalConstants(struct Options&);
00270
00271
00272 private:
00273 static BDSGlobalConstants* _instance;
00274
00275 G4UniformMagField* zeroMagField;
00276
00277 G4double itsElossHistoBinWidth;
00278 G4double itsElossHistoTransBinWidth;
00279 G4double itsDefaultRangeCut;
00280 G4double itsFFact;
00281
00282 G4double PI;
00283
00284 std::ifstream ifs;
00285 std::ostream* log;
00286
00287 G4String itsParticleName;
00288 G4ParticleDefinition* itsBeamParticleDefinition;
00289 G4double itsBeamTotalEnergy;
00290 G4double itsBeamMomentum, itsBeamKineticEnergy;
00291 G4double itsLPBFraction;
00292 G4double itsVacuumPressure;
00293 G4double itsPlanckScatterFe;
00294 G4double itsGammaToMuFe;
00295 G4double itsAnnihiToMuFe;
00296 G4double itsEeToHadronsFe;
00297 G4bool itsSampleDistRandomly;
00298 G4bool itsGeometryBias;
00299 G4bool itsUseEMLPB;
00300 G4bool itsUseHadLPB;
00301 G4double itsMinimumEpsilonStep;
00302 G4double itsMaximumEpsilonStep;
00303 G4double itsMaxTime;
00304 G4double itsDeltaOneStep;
00305 G4double itsComponentBoxSize;
00306 G4double itsMagnetPoleSize;
00307 G4double itsMagnetPoleRadius;
00308 G4bool itsBuildTunnel;
00309 G4bool itsBuildTunnelFloor;
00310 G4double itsTunnelRadius;
00311 G4double itsTunnelThickness;
00312 G4double itsTunnelSoilThickness;
00313 G4double itsTunnelFloorOffset;
00314 G4double itsTunnelOffsetX;
00315 G4double itsTunnelOffsetY;
00316 G4bool itsShowTunnel;
00317
00318 G4bool itsSensitiveComponents;
00319 G4bool itsSensitiveBeamPipe;
00320 G4bool itsSensitiveBLMs;
00321
00322 G4double itsBlmRad;
00323 G4double itsBlmLength;
00324 G4double itsBeampipeRadius;
00325 G4double itsBeampipeThickness;
00326 G4double itsTotalS;
00327 G4double itsSamplerDiameter;
00328 G4double itsSamplerLength;
00329 G4double itsDeltaIntersection;
00330 G4double itsDeltaChord;
00331 G4double itsChordStepMinimum;
00332 G4double itsThresholdCutCharged;
00333 G4double itsThresholdCutPhotons;
00334 G4double itsProdCutPhotons;
00335 G4double itsProdCutPhotonsP;
00336 G4double itsProdCutElectrons;
00337 G4double itsProdCutElectronsP;
00338 G4double itsProdCutPositrons;
00339 G4double itsProdCutPositronsP;
00340 G4String itsBDSIMHOME;
00341 G4String itsPhysListName;
00342 G4bool itsSynchRadOn;
00343 G4bool itsDecayOn;
00344 G4bool itsSynchRescale;
00345 G4bool itsSynchTrackPhotons;
00346 G4double itsSynchLowX;
00347 G4double itsSynchLowGamE;
00348 G4int itsSynchMeanFreeFactor;
00349 G4int itsSynchPhotonMultiplicity;
00350
00351 std::map<const G4String, G4double, strCmp> lwWavelength;
00352 std::map<const G4String, G4ThreeVector, strCmp> lwDirection;
00353 G4double itsLaserwireWavelength;
00354 G4ThreeVector itsLaserwireDir;
00355 G4bool itsLaserwireTrackPhotons;
00356 G4bool itsLaserwireTrackElectrons;
00357 G4bool itsTurnOnCerenkov;
00358 G4bool doTwiss;
00359 G4bool itsDoPlanckScattering;
00360 G4bool itsCheckOverlaps;
00361 G4bool itsStoreMuonTrajectories;
00362 G4double itsTrajCutGTZ;
00363 G4double itsTrajCutLTR;
00364 G4bool itsStoreTrajectory;
00365 G4bool itsStoreNeutronTrajectories;
00366 G4bool itsIncludeIronMagFields;
00367 G4double itsLengthSafety;
00368 G4bool itsUseBatch;
00369 G4long itsRandomSeed;
00370 G4int itsNumberToGenerate;
00371 G4int itsNumberOfEventsPerNtuple;
00372 G4int itsEventNumberOffset;
00373 G4FieldManager* itsZeroFieldManager;
00374
00375 public:
00376 G4double GetLWCalWidth();
00377 G4double GetLWCalOffset();
00378 G4String GetPipeMaterialName();
00379 G4String GetVacuumMaterial();
00380 G4String GetSoilMaterialName();
00381 G4String GetTunnelMaterialName();
00382 G4String GetTunnelCavityMaterialName();
00383
00384 private:
00385 G4double itsLWCalWidth;
00386 G4double itsLWCalOffset;
00387 G4String itsPipeMaterial;
00388 G4String itsVacMaterial;
00389 G4String itsTunnelMaterialName;
00390 G4String itsTunnelCavityMaterialName;
00391 G4String itsSoilMaterialName;
00392 G4bool itsSynchPrimaryGen;
00393 G4double itsSynchPrimaryAngle;
00394 G4double itsSynchPrimaryLength;
00395 G4bool isWaitingForDump;
00396 G4bool isDumping;
00397 G4bool isReading;
00398 G4bool isReadFromStack;
00399 G4String itsFifo;
00400 G4AffineTransform itsDumpTransform;
00401 G4String itsRefVolume;
00402 G4int itsRefCopyNo;
00403 G4AffineTransform itsRefTransform;
00404 };
00405
00406 inline G4double BDSGlobalConstants::GetElossHistoBinWidth(){
00407 return itsElossHistoBinWidth;
00408 }
00409
00410 inline G4double BDSGlobalConstants::GetElossHistoTransBinWidth(){
00411 return itsElossHistoTransBinWidth;
00412 }
00413
00414 inline G4double BDSGlobalConstants::GetDefaultRangeCut(){
00415 return itsDefaultRangeCut;
00416 }
00417
00418 inline G4double BDSGlobalConstants::GetFFact(){
00419 return itsFFact;
00420 }
00421
00422 inline G4double BDSGlobalConstants::GetPI()
00423 {
00424 return PI;
00425 }
00426
00427 inline G4double BDSGlobalConstants::GetMinimumEpsilonStep()
00428 {
00429 return itsMinimumEpsilonStep;
00430 }
00431
00432 inline G4double BDSGlobalConstants::GetMaximumEpsilonStep()
00433 {
00434 return itsMaximumEpsilonStep;
00435 }
00436
00437 inline G4double BDSGlobalConstants::GetMaxTime()
00438 {
00439 return itsMaxTime;
00440 }
00441
00442 inline G4double BDSGlobalConstants::GetDeltaOneStep()
00443 {
00444 return itsDeltaOneStep;
00445 }
00446
00447 inline void BDSGlobalConstants::SetLogFile(std::ofstream & os)
00448 {
00449 log=&os;
00450 }
00451
00452
00453 inline G4double BDSGlobalConstants::GetBeamKineticEnergy()
00454 {
00455 return itsBeamKineticEnergy;
00456 }
00457
00458 inline void BDSGlobalConstants::SetBeamKineticEnergy(G4double val)
00459 {
00460 itsBeamKineticEnergy = val;
00461 }
00462
00463 inline G4double BDSGlobalConstants::GetLPBFraction()
00464 {
00465 return itsLPBFraction;
00466 }
00467
00468 inline void BDSGlobalConstants::SetLPBFraction(G4double val)
00469 {
00470 if(val>1.0){
00471 itsLPBFraction = 1.0;
00472 }
00473 else if(val<0.0){
00474 itsLPBFraction = 0.0;
00475 }
00476 else {
00477 itsLPBFraction = val;
00478 }
00479 }
00480
00481 inline G4double BDSGlobalConstants::GetBeamTotalEnergy()
00482 {
00483 return itsBeamTotalEnergy;
00484 }
00485
00486 inline void BDSGlobalConstants::SetBeamTotalEnergy(G4double val)
00487 {
00488 itsBeamTotalEnergy = val;
00489 }
00490
00491
00492 inline G4double BDSGlobalConstants::GetBeamMomentum()
00493 {
00494 return itsBeamMomentum;
00495 }
00496
00497 inline void BDSGlobalConstants::SetBeamMomentum(G4double val)
00498 {
00499 itsBeamMomentum = val;
00500 }
00501
00502
00503 inline G4ParticleDefinition* BDSGlobalConstants::GetParticleDefinition()
00504 {
00505 return itsBeamParticleDefinition;
00506 }
00507
00508 inline G4String BDSGlobalConstants::GetParticleName()
00509 {
00510 return itsParticleName;
00511 }
00512
00513 inline void BDSGlobalConstants::SetParticleDefinition(G4ParticleDefinition* aBeamParticleDefinition)
00514 {
00515 itsBeamParticleDefinition = aBeamParticleDefinition;
00516 }
00517
00518 inline void BDSGlobalConstants::SetParticleName(G4String aParticleName)
00519 {
00520 itsParticleName = aParticleName;
00521 }
00522
00523
00524
00525
00526
00527
00528 inline G4double BDSGlobalConstants::GetVacuumPressure()
00529 {return itsVacuumPressure;}
00530
00531 inline G4double BDSGlobalConstants::GetPlanckScatterFe()
00532 {return itsPlanckScatterFe;}
00533
00534 inline G4double BDSGlobalConstants::GetGammaToMuFe()
00535 {return itsGammaToMuFe;}
00536
00537 inline G4double BDSGlobalConstants::GetAnnihiToMuFe()
00538 {return itsAnnihiToMuFe;}
00539
00540 inline G4double BDSGlobalConstants::GetEeToHadronsFe()
00541 {return itsEeToHadronsFe;}
00542
00543 inline G4bool BDSGlobalConstants::GetSampleDistRandomly(){
00544 return itsSampleDistRandomly;}
00545
00546 inline G4bool BDSGlobalConstants::GetUseEMLPB(){
00547 return itsUseEMLPB;}
00548
00549 inline G4bool BDSGlobalConstants::GetUseHadLPB(){
00550 return itsUseHadLPB;}
00551
00552
00553 inline G4bool BDSGlobalConstants::GetSensitiveComponents()
00554 {return itsSensitiveComponents;}
00555 inline G4bool BDSGlobalConstants::GetSensitiveBeamPipe()
00556 {return itsSensitiveBeamPipe;}
00557 inline G4bool BDSGlobalConstants::GetSensitiveBLMs()
00558 {return itsSensitiveBLMs;}
00559
00560 inline G4double BDSGlobalConstants::GetComponentBoxSize()
00561 {return itsComponentBoxSize;}
00562
00563 inline G4double BDSGlobalConstants::GetMagnetPoleSize()
00564 {return itsMagnetPoleSize;}
00565
00566 inline G4double BDSGlobalConstants::GetMagnetPoleRadius()
00567 {return itsMagnetPoleRadius;}
00568
00569 inline G4bool BDSGlobalConstants::GetBuildTunnel()
00570 {return itsBuildTunnel;}
00571
00572 inline G4bool BDSGlobalConstants::GetBuildTunnelFloor()
00573 {return itsBuildTunnelFloor;}
00574
00575 inline G4double BDSGlobalConstants::GetTunnelRadius()
00576 {return itsTunnelRadius;}
00577
00578 inline void BDSGlobalConstants::SetTunnelRadius(G4double radius)
00579 {itsTunnelRadius=radius;}
00580
00581 inline G4double BDSGlobalConstants::GetTunnelThickness()
00582 {return itsTunnelThickness;}
00583
00584 inline G4double BDSGlobalConstants::GetTunnelSoilThickness()
00585 {return itsTunnelSoilThickness;}
00586
00587 inline G4double BDSGlobalConstants::GetTunnelFloorOffset()
00588 {return itsTunnelFloorOffset;}
00589
00590 inline G4double BDSGlobalConstants::GetTunnelOffsetX()
00591 {return itsTunnelOffsetX;}
00592
00593 inline G4double BDSGlobalConstants::GetTunnelOffsetY()
00594 {return itsTunnelOffsetY;}
00595
00596 inline G4bool BDSGlobalConstants::GetShowTunnel()
00597 {return itsShowTunnel;}
00598
00599 inline G4bool BDSGlobalConstants::GetGeometryBias()
00600 {return itsGeometryBias;}
00601
00602
00603
00604 inline G4double BDSGlobalConstants::GetBlmRad()
00605 {return itsBlmRad;}
00606
00607 inline G4double BDSGlobalConstants::GetBlmLength()
00608 {return itsBlmLength;}
00609
00610
00611
00612
00613
00614
00615
00616
00617
00618 inline G4double BDSGlobalConstants::GetBeampipeRadius()
00619 {return itsBeampipeRadius;}
00620
00621 inline G4double BDSGlobalConstants::GetBeampipeThickness()
00622 {return itsBeampipeThickness;}
00623
00624 inline G4double BDSGlobalConstants::GetSamplerDiameter()
00625 {return itsSamplerDiameter;}
00626
00627 inline G4double BDSGlobalConstants::GetSamplerLength()
00628 {return itsSamplerLength;}
00629
00630 inline G4double BDSGlobalConstants::GetDeltaChord()
00631 {return itsDeltaChord;}
00632
00633 inline G4double BDSGlobalConstants::GetDeltaIntersection()
00634 {return itsDeltaIntersection;}
00635
00636 inline G4double BDSGlobalConstants::GetChordStepMinimum()
00637 {return itsChordStepMinimum;}
00638
00639 inline G4double BDSGlobalConstants::GetThresholdCutCharged()
00640 {return itsThresholdCutCharged;}
00641 inline G4double BDSGlobalConstants::GetThresholdCutPhotons()
00642 {return itsThresholdCutPhotons;}
00643
00644 inline G4double BDSGlobalConstants::GetProdCutPhotons()
00645 {return itsProdCutPhotons;}
00646 inline G4double BDSGlobalConstants::GetProdCutPhotonsP()
00647 {return itsProdCutPhotonsP;}
00648 inline G4double BDSGlobalConstants::GetProdCutElectrons()
00649 {return itsProdCutElectrons;}
00650 inline G4double BDSGlobalConstants::GetProdCutElectronsP()
00651 {return itsProdCutElectronsP;}
00652 inline G4double BDSGlobalConstants::GetProdCutPositrons()
00653 {return itsProdCutPositrons;}
00654 inline G4double BDSGlobalConstants::GetProdCutPositronsP()
00655 {return itsProdCutPositronsP;}
00656
00657
00658
00659
00660
00661
00662
00663 inline G4double BDSGlobalConstants::GetTotalS()
00664 {return itsTotalS;}
00665 inline void BDSGlobalConstants::SetTotalS(G4double TotalS)
00666 {itsTotalS=TotalS;}
00667
00668
00669
00670
00671
00672
00673
00674
00675
00676
00677
00678
00679
00680
00681
00682
00683 inline G4String BDSGlobalConstants::GetBDSIMHOME()
00684 {
00685 return itsBDSIMHOME;
00686 }
00687
00688 inline G4String BDSGlobalConstants::GetPhysListName()
00689 {
00690 return itsPhysListName;
00691 }
00692
00693 inline void BDSGlobalConstants::SetPhysListName(G4String val)
00694 {
00695 itsPhysListName = val;
00696 }
00697
00698 inline G4bool BDSGlobalConstants::GetSynchRadOn()
00699 {return itsSynchRadOn;}
00700
00701 inline G4bool BDSGlobalConstants::GetDecayOn()
00702 {return itsDecayOn;}
00703
00704 inline G4bool BDSGlobalConstants::GetSynchRescale()
00705 {return itsSynchRescale;}
00706
00707 inline void BDSGlobalConstants::SetSynchRescale(G4bool srRescale)
00708 {itsSynchRescale = srRescale;}
00709
00710 inline G4bool BDSGlobalConstants::GetSynchTrackPhotons()
00711 {return itsSynchTrackPhotons ;}
00712
00713 inline void BDSGlobalConstants::SetSynchTrackPhotons(G4bool srTrackPhotons)
00714 {itsSynchTrackPhotons=srTrackPhotons ;}
00715
00716 inline G4double BDSGlobalConstants::GetSynchLowX()
00717 {return itsSynchLowX ;}
00718
00719 inline G4double BDSGlobalConstants::GetSynchLowGamE()
00720 {return itsSynchLowGamE ;}
00721
00722 inline G4int BDSGlobalConstants::GetSynchPhotonMultiplicity()
00723 {return itsSynchPhotonMultiplicity ;}
00724
00725 inline G4int BDSGlobalConstants::GetSynchMeanFreeFactor()
00726 {return itsSynchMeanFreeFactor ;}
00727
00728 inline G4double BDSGlobalConstants::GetLaserwireWavelength()
00729 {return itsLaserwireWavelength ;}
00730
00731 inline G4ThreeVector BDSGlobalConstants::GetLaserwireDir()
00732 {return itsLaserwireDir ;}
00733
00734 inline G4bool BDSGlobalConstants::GetLaserwireTrackPhotons()
00735 {return itsLaserwireTrackPhotons ;}
00736
00737 inline G4bool BDSGlobalConstants::GetLaserwireTrackElectrons()
00738 {return itsLaserwireTrackElectrons ;}
00739
00740
00741
00742
00743
00744
00745
00746
00747
00748
00749 inline G4double BDSGlobalConstants::GetLengthSafety()
00750 {return itsLengthSafety;}
00751
00752 inline G4bool BDSGlobalConstants::GetTurnOnCerenkov()
00753 {return itsTurnOnCerenkov;}
00754
00755 inline G4bool BDSGlobalConstants::GetIncludeIronMagFields()
00756 {return itsIncludeIronMagFields;}
00757
00758
00759 inline G4bool BDSGlobalConstants::GetStoreMuonTrajectories()
00760 {return itsStoreMuonTrajectories;}
00761
00762 inline G4double BDSGlobalConstants::GetTrajCutGTZ(){ return itsTrajCutGTZ; }
00763 inline G4double BDSGlobalConstants::GetTrajCutLTR(){ return itsTrajCutLTR; }
00764
00765 inline G4bool BDSGlobalConstants::GetStoreNeutronTrajectories()
00766 {return itsStoreNeutronTrajectories;}
00767
00768 inline G4bool BDSGlobalConstants::GetStoreTrajectory()
00769 {return itsStoreTrajectory;}
00770
00771 inline G4bool BDSGlobalConstants::GetStopTracks()
00772 { return stopTracks; }
00773
00774 inline void BDSGlobalConstants::SetStopTracks(G4bool val)
00775 { stopTracks = val; }
00776
00777 inline G4long BDSGlobalConstants::GetRandomSeed()
00778 {return itsRandomSeed;}
00779 inline G4bool BDSGlobalConstants::GetUseBatch()
00780 {return itsUseBatch;}
00781 inline G4int BDSGlobalConstants::GetNumberToGenerate()
00782 {return itsNumberToGenerate;}
00783
00784 inline G4int BDSGlobalConstants::GetNumberOfEventsPerNtuple()
00785 {return itsNumberOfEventsPerNtuple;}
00786
00787 inline G4int BDSGlobalConstants::GetEventNumberOffset()
00788 {return itsEventNumberOffset;}
00789
00790 inline G4FieldManager* BDSGlobalConstants::GetZeroFieldManager()
00791 {return itsZeroFieldManager;}
00792
00793
00794 inline G4double BDSGlobalConstants::GetLWCalWidth()
00795 {return itsLWCalWidth;}
00796
00797 inline G4double BDSGlobalConstants::GetLWCalOffset()
00798 {return itsLWCalOffset;}
00799
00800
00801
00802
00803 inline G4String BDSGlobalConstants::GetPipeMaterialName()
00804 {return itsPipeMaterial;}
00805
00806 inline G4String BDSGlobalConstants::GetVacuumMaterial()
00807 {return itsVacMaterial;}
00808
00809 inline G4String BDSGlobalConstants::GetSoilMaterialName()
00810 {return itsSoilMaterialName;}
00811
00812 inline G4String BDSGlobalConstants::GetTunnelMaterialName()
00813 {return itsTunnelMaterialName;}
00814
00815 inline G4String BDSGlobalConstants::GetTunnelCavityMaterialName()
00816 {return itsTunnelCavityMaterialName;}
00817
00818 inline G4bool BDSGlobalConstants::GetUseSynchPrimaryGen()
00819 {return itsSynchPrimaryGen;}
00820 inline G4double BDSGlobalConstants::GetSynchPrimaryAngle()
00821 {return itsSynchPrimaryAngle;}
00822 inline G4double BDSGlobalConstants::GetSynchPrimaryLength()
00823 {return itsSynchPrimaryLength;}
00824
00825 inline G4bool BDSGlobalConstants::DoTwiss()
00826 {return doTwiss;}
00827
00828 inline void BDSGlobalConstants::SetDoTwiss(G4bool val)
00829 {doTwiss = val;}
00830
00831 inline G4bool BDSGlobalConstants::GetDoPlanckScattering()
00832 {return itsDoPlanckScattering;}
00833
00834 inline G4bool BDSGlobalConstants::GetCheckOverlaps()
00835 {return itsCheckOverlaps;}
00836
00837
00838 inline G4double BDSGlobalConstants::GetLaserwireWavelength(G4String aName)
00839 {return lwWavelength[aName];}
00840
00841
00842 inline G4ThreeVector BDSGlobalConstants::GetLaserwireDir(G4String aName)
00843 {return lwDirection[aName];}
00844
00845 inline void BDSGlobalConstants::SetLaserwireWavelength(G4String aName, G4double aWavelength)
00846 {lwWavelength[aName]=aWavelength;}
00847
00848 inline void BDSGlobalConstants::SetLaserwireDir(G4String aName, G4ThreeVector aDirection)
00849 {lwDirection[aName]=aDirection;}
00850
00851 inline void BDSGlobalConstants::setWaitingForDump(G4bool flag) { isWaitingForDump = flag; }
00852 inline G4bool BDSGlobalConstants::getWaitingForDump() { return isWaitingForDump; }
00853
00854 inline void BDSGlobalConstants::setDumping(G4bool flag) { isDumping = flag; }
00855 inline G4bool BDSGlobalConstants::getDumping() { return isDumping; }
00856
00857 inline void BDSGlobalConstants::setReading(G4bool flag) { isReading = flag; }
00858 inline G4bool BDSGlobalConstants::getReading() { return isReading; }
00859
00860 inline void BDSGlobalConstants::setReadFromStack(G4bool flag) { isReadFromStack = flag; }
00861 inline G4bool BDSGlobalConstants::getReadFromStack() { return isReadFromStack; }
00862
00863 inline G4String BDSGlobalConstants::GetFifo() {return itsFifo;}
00864
00865 inline G4AffineTransform BDSGlobalConstants::GetDumpTransform() {return itsDumpTransform;}
00866 inline void BDSGlobalConstants::SetDumpTransform(G4AffineTransform tf)
00867 {itsDumpTransform=tf;}
00868
00869 inline G4String BDSGlobalConstants::GetRefVolume() { return itsRefVolume; }
00870 inline G4int BDSGlobalConstants::GetRefCopyNo() { return itsRefCopyNo; }
00871
00872 inline const G4AffineTransform* BDSGlobalConstants::GetRefTransform() { return &itsRefTransform; }
00873 inline void BDSGlobalConstants::SetRefTransform(G4AffineTransform& aTransform)
00874 {itsRefTransform=aTransform;}
00875
00876 #endif
00877