include/BDSGlobalConstants.hh

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 struct trackSort : public binary_function<G4Track*, G4Track*, G4bool>{
00049   G4bool operator()(G4Track* a, G4Track* b){
00050   return a->GetPosition().z() < b->GetPosition().z();}
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(); //The transverse (x,y) bin width
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   // Booleans determining which types of components are sensitive
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   // Beam loss monitors
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   // Environment variables
00168   G4String GetBDSIMHOME();
00169 
00170   // Physical processes etc.
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   // Use map to generate multiple laserwires with independent wavelength 
00190   // and direction
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; // kill tracks after interactions
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   // AI : for placet synchronization
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   // SPM : temp filestream for placet to read and write
00259   std::ofstream fileDump;
00260   // ifstream fileRead; replaced with FILE* fifo in code for consistency with Placet. SPM
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   //PI
00282   G4double PI;
00283   // Data Members for Class Attributes
00284   std::ifstream ifs;
00285   std::ostream* log;
00286   // initial bunch parameters
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   //Booleans determining which types of components are sensitive
00318   G4bool itsSensitiveComponents;
00319   G4bool itsSensitiveBeamPipe;
00320   G4bool itsSensitiveBLMs;
00321   //Beam loss monitor geometry
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   // test map container for laserwire parameters - Steve
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; //beampipe material
00388   G4String itsVacMaterial;  //vacuum inside beampipe
00389   G4String itsTunnelMaterialName;  //tunnel material
00390   G4String itsTunnelCavityMaterialName;  //tunnel cavity material
00391   G4String itsSoilMaterialName;  //material around tunnel
00392   G4bool itsSynchPrimaryGen;
00393   G4double itsSynchPrimaryAngle;
00394   G4double itsSynchPrimaryLength;
00395   G4bool isWaitingForDump;
00396   G4bool isDumping;
00397   G4bool isReading;
00398   G4bool isReadFromStack;
00399   G4String itsFifo; // fifo for BDSIM-placet
00400   G4AffineTransform itsDumpTransform; //transform of frame from start to current dump element
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 //inline G4double BDSGlobalConstants::GetSigmaT()
00524 //{
00525 //  return itsSigmaT;
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 //Booleans determining which types of components are sensitive
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 //Beam loss monitors
00603 
00604 inline G4double BDSGlobalConstants::GetBlmRad()
00605 {return itsBlmRad;}
00606 
00607 inline G4double BDSGlobalConstants::GetBlmLength()
00608 {return itsBlmLength;}
00609 
00610 
00611 // inline  G4double BDSGlobalConstants::GetHorizontalBeamlineOffset()
00612 // {return itsHorizontalBeamlineOffset;}
00613 // inline  G4double BDSGlobalConstants::GetVerticalBeamlineOffset()
00614 // {return itsVerticalBeamlineOffset;}
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 //inline G4double BDSGlobalConstants::GetWorldSizeZ() 
00659 //{return itsWorldSizeZ;}
00660 //inline void BDSGlobalConstants::SetWorldSizeZ(G4double WorldSizeZ) 
00661 //{itsWorldSizeZ=WorldSizeZ;}
00662 
00663 inline G4double BDSGlobalConstants::GetTotalS() 
00664 {return itsTotalS;}
00665 inline void BDSGlobalConstants::SetTotalS(G4double TotalS) 
00666 {itsTotalS=TotalS;}
00667 
00668 // inline void BDSGlobalConstants::SetVerticalComponentOffset(G4double VerticalComponentOffset)
00669 // {itsVerticalComponentOffset=VerticalComponentOffset;}
00670 // inline void BDSGlobalConstants::SetHorizontalComponentOffset(G4double HorizontalComponentOffset)
00671 // {itsHorizontalComponentOffset=HorizontalComponentOffset;}
00672 
00673 // inline void BDSGlobalConstants::AddVerticalComponentOffset(G4double VerticalComponentOffset)
00674 // {itsVerticalComponentOffset+=VerticalComponentOffset;}
00675 // inline void BDSGlobalConstants::AddHorizontalComponentOffset(G4double HorizontalComponentOffset)
00676 // {itsHorizontalComponentOffset+=HorizontalComponentOffset;}
00677 
00678 // inline G4double BDSGlobalConstants::GetVerticalComponentOffset()
00679 // {return itsVerticalComponentOffset;}
00680 // inline G4double BDSGlobalConstants::GetHorizontalComponentOffset()
00681 // {return itsHorizontalComponentOffset;}
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 // inline G4bool BDSGlobalConstants::GetReadBunchFile()
00741 // {return itsReadBunchFile;}
00742 
00743 // inline G4bool BDSGlobalConstants::GetExtractBunchFile()
00744 // {return itsExtractBunchFile;}
00745 
00746 // inline G4bool BDSGlobalConstants::GetWriteBunchFile()
00747 // {return itsWriteBunchFile ;}
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 //inline  G4String BDSGlobalConstants::GetLWCalMaterial()
00801 //{return itsLWCalMaterial;}
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 //for map of laserwire wavelengths
00838 inline G4double BDSGlobalConstants::GetLaserwireWavelength(G4String aName)
00839 {return lwWavelength[aName];}
00840 
00841 //for map of laserwire wavelengths
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; } // waiting before all tracks arrive at a dump element
00852 inline G4bool BDSGlobalConstants::getWaitingForDump() { return isWaitingForDump; }
00853 
00854 inline void BDSGlobalConstants::setDumping(G4bool flag) { isDumping = flag; } // all tracks are pending - for stacking manager 
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 

Generated on 27 Aug 2013 for BDSIM by  doxygen 1.4.7