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