/scratch0/jsnuveri/BDSIM/BDSIMgit/bdsim/include/BDSGlobalConstants.hh

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

Generated on 28 Jun 2015 for BDSIM by  doxygen 1.4.7