/home/cern/BDSIM_new/include/BDSGlobalConstants.hh

00001 
00007 //==============================================================
00008 
00009 #ifndef BDSGlobalConstants_h
00010 #define BDSGlobalConstants_h 
00011 
00012 #include "G4Timer.hh" // This must be the first in the include list
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 //#include "G4Track.hh"
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 struct trackSort : public binary_function<G4Track*, G4Track*, G4bool>{
00056   G4bool operator()(G4Track* a, G4Track* b){
00057   return a->GetPosition().z() < b->GetPosition().z();}
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   //  void SetWorldSizeZ(G4double WorldSizeZ);
00100   //G4double GetWorldSizeZ();
00101 
00102   void SetTotalS(G4double TotalS);
00103   G4double GetTotalS();  
00104 
00105  //  void SetVerticalComponentOffset(G4double VerticalComponentOffset);
00106 //   void SetHorizontalComponentOffset(G4double HorizontalComponentOffset);
00107 //   void AddVerticalComponentOffset(G4double VerticalComponentOffset);
00108 //   void AddHorizontalComponentOffset(G4double HorizontalComponentOffset);
00109 //   G4double GetVerticalComponentOffset(); 
00110 //   G4double GetHorizontalComponentOffset(); 
00111 
00112   G4double GetComponentBoxSize();
00113   G4double GetMagnetPoleSize();
00114   G4double GetMagnetPoleRadius();
00115 
00116   G4double GetTunnelRadius(); 
00117   //G4double GetHorizontalBeamlineOffset(); 
00118   //G4double GetVerticalBeamlineOffset(); 
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   // physical processes etc.
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   //use map to generate multiple laserwires with independent wavelength 
00164   //and direction
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   // G4bool GetReadBunchFile();
00174   // G4bool GetWriteBunchFile();
00175   //G4bool GetExtractBunchFile();
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; // kill tracks after interactions
00193 
00194   // gab Dec04
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   // Internally transmitted variables:
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   // AI : for placet synchronization
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   // SPM : temp filestream for placet to read and write
00265   ofstream fileDump;
00266   // ifstream fileRead; replaced with FILE* fifo in code for consistency with Placet. SPM
00267 
00268   G4String tmpParticleName; // particle name as given in options
00269                             // since the particle definition is looked up in 
00270                             // PhysicsList we need to store the name first
00271 
00272   std::deque<tmpParticle> holdingQueue;
00273 
00274 protected:
00275 private:
00276   // Data Members for Class Attributes
00277   ifstream ifs;
00278   ostream* log;
00279 
00280   // initial bunch parameters
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   //G4double itsHorizontalBeamlineOffset;
00302   //G4double itsVerticalBeamlineOffset;
00303  
00304   //G4double itsVerticalComponentOffset;
00305   //G4double itsHorizontalComponentOffset;
00306 
00307   G4double itsBeampipeRadius; 
00308   G4double itsBeampipeThickness; 
00309   //G4double itsWorldSizeZ; 
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   // test map container for laserwire parameters - Steve
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   //  G4bool itsReadBunchFile;
00356   // G4bool itsWriteBunchFile;
00357   // G4bool itsExtractBunchFile;
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   // Internally used variables:
00397   G4double GlobalBeamlineRotationY;
00398 
00399   G4FieldManager* itsZeroFieldManager;
00400 
00401 public:
00402   G4double GetLWCalWidth();
00403   G4double GetLWCalOffset();
00404   //G4String GetLWCalMaterial();
00405 
00406   G4String GetPipeMaterialName();
00407   G4String GetVacMaterialName();
00408 
00409 private:
00410   G4double itsLWCalWidth;
00411   G4double itsLWCalOffset;
00412   //G4String itsLWCalMaterial;
00413   G4String itsPipeMaterial; //beampipe material
00414   G4String itsVacMaterial;  //vacuum inside beampipe
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; // fifo for BDSIM-placet
00434   G4AffineTransform itsDumpTransform; //transform of frame from start to current dump element
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 //inline G4double BDSGlobalConstants::GetSigmaT()
00502 //{
00503 //  return itsSigmaT;
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 // inline  G4double BDSGlobalConstants::GetHorizontalBeamlineOffset()
00522 // {return itsHorizontalBeamlineOffset;}
00523 // inline  G4double BDSGlobalConstants::GetVerticalBeamlineOffset()
00524 // {return itsVerticalBeamlineOffset;}
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 //inline G4double BDSGlobalConstants::GetWorldSizeZ() 
00563 //{return itsWorldSizeZ;}
00564 //inline void BDSGlobalConstants::SetWorldSizeZ(G4double WorldSizeZ) 
00565 //{itsWorldSizeZ=WorldSizeZ;}
00566 
00567 inline G4double BDSGlobalConstants::GetTotalS() 
00568 {return itsTotalS;}
00569 inline void BDSGlobalConstants::SetTotalS(G4double TotalS) 
00570 {itsTotalS=TotalS;}
00571 
00572 // inline void BDSGlobalConstants::SetVerticalComponentOffset(G4double VerticalComponentOffset)
00573 // {itsVerticalComponentOffset=VerticalComponentOffset;}
00574 // inline void BDSGlobalConstants::SetHorizontalComponentOffset(G4double HorizontalComponentOffset)
00575 // {itsHorizontalComponentOffset=HorizontalComponentOffset;}
00576 
00577 // inline void BDSGlobalConstants::AddVerticalComponentOffset(G4double VerticalComponentOffset)
00578 // {itsVerticalComponentOffset+=VerticalComponentOffset;}
00579 // inline void BDSGlobalConstants::AddHorizontalComponentOffset(G4double HorizontalComponentOffset)
00580 // {itsHorizontalComponentOffset+=HorizontalComponentOffset;}
00581 
00582 // inline G4double BDSGlobalConstants::GetVerticalComponentOffset()
00583 // {return itsVerticalComponentOffset;}
00584 // inline G4double BDSGlobalConstants::GetHorizontalComponentOffset()
00585 // {return itsHorizontalComponentOffset;}
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 // inline G4bool BDSGlobalConstants::GetReadBunchFile()
00647 // {return itsReadBunchFile;}
00648 
00649 // inline G4bool BDSGlobalConstants::GetExtractBunchFile()
00650 // {return itsExtractBunchFile;}
00651 
00652 // inline G4bool BDSGlobalConstants::GetWriteBunchFile()
00653 // {return itsWriteBunchFile ;}
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 // Internally transmitted variables
00748   // Internally transmitted variables:
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 //inline  G4String BDSGlobalConstants::GetLWCalMaterial()
00765 //{return itsLWCalMaterial;}
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 //for map of laserwire wavelengths
00804 inline G4double BDSGlobalConstants::GetLaserwireWavelength(G4String aName)
00805 {return lwWavelength[aName];}
00806 
00807 //for map of laserwire wavelengths
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; } // waiting before all tracks arrive at a dump element
00818 inline G4bool BDSGlobalConstants::getWaitingForDump() { return isWaitingForDump; }
00819 
00820 inline void BDSGlobalConstants::setDumping(G4bool flag) { isDumping = flag; } // all tracks are pending - for stacking manager 
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 

Generated on Wed Mar 5 17:25:21 2008 for BDSIM by  doxygen 1.5.3