37#ifndef G4ProductionCutsTable_hh
38#define G4ProductionCutsTable_hh 1
225const std::vector<G4double>*
232const std::vector<G4double>*
257 if((*itr)->IsRecalcNeeded())
270 (*itr)->PhysicsTableUpdated();
302 for(std::size_t iMate=0;iMate<nMaterial; ++iMate, ++mItr)
320 if((*cItr)->GetMaterial()!=aMat)
continue;
321 if((*cItr)->GetProductionCuts()==aCut)
return (*cItr);
333 if((*cItr)==aCouple)
return idx;
const G4Material * GetMaterial() const
G4ProductionCuts * GetProductionCuts() const
const std::vector< G4double > * GetRangeCutsVector(std::size_t pcIdx) const
virtual G4bool RetrieveCutsInfo(const G4String &directory, G4bool ascii=false)
G4double * GetEnergyCutsDoubleVector(std::size_t pcIdx) const
std::vector< G4MaterialCutsCouple * > coupleTable
G4bool RetrieveCutsTable(const G4String &directory, G4bool ascii=false)
virtual G4bool StoreCutsInfo(const G4String &directory, G4bool ascii=false)
std::vector< std::vector< G4double > * > rangeCutTable
G4double GetLowEdgeEnergy() const
const G4MaterialCutsCouple * GetMaterialCutsCouple(G4int i) const
void SetMaxEnergyCut(G4double value)
void UpdateCoupleTable(G4VPhysicalVolume *currentWorld)
G4MCCIndexConversionTable mccConversionTable
G4double GetMaxEnergyCut()
void SetVerboseLevel(G4int value)
G4double * energyDoubleVector[NumberOfG4CutIndex]
std::size_t GetTableSize() const
G4VRangeToEnergyConverter * converters[NumberOfG4CutIndex]
virtual G4bool CheckMaterialInfo(const G4String &directory, G4bool ascii=false)
G4int GetVerboseLevel() const
virtual G4bool StoreMaterialInfo(const G4String &directory, G4bool ascii=false)
G4double GetHighEdgeEnergy() const
virtual ~G4ProductionCutsTable()
G4double * GetRangeCutsDoubleVector(std::size_t pcIdx) const
const std::vector< G4double > * GetEnergyCutsVector(std::size_t pcIdx) const
static G4ProductionCutsTable * fProductionCutsTable
G4bool StoreCutsTable(const G4String &directory, G4bool ascii=false)
G4RegionStore * fG4RegionStore
@ FixedStringLengthForStore
G4ProductionCutsTable & operator=(const G4ProductionCutsTable &)=delete
G4double * rangeDoubleVector[NumberOfG4CutIndex]
const G4MCCIndexConversionTable * GetMCCIndexConversionTable() const
G4bool CheckForRetrieveCutsTable(const G4String &directory, G4bool ascii=false)
void PhysicsTableUpdated()
void ScanAndSetCouple(G4LogicalVolume *aLV, G4MaterialCutsCouple *aCouple, G4Region *aRegion)
void SetEnergyRange(G4double lowedge, G4double highedge)
static G4ProductionCutsTable * GetProductionCutsTable()
G4int GetCoupleIndex(const G4MaterialCutsCouple *aCouple) const
virtual G4bool CheckMaterialCutsCoupleInfo(const G4String &directory, G4bool ascii=false)
G4ProductionCuts * GetDefaultProductionCuts() const
G4ProductionCutsTable(const G4ProductionCutsTable &)=delete
G4bool IsModified() const
G4bool IsCoupleUsedInTheRegion(const G4MaterialCutsCouple *aCouple, const G4Region *aRegion) const
G4ProductionCuts * defaultProductionCuts
G4double ConvertRangeToEnergy(const G4ParticleDefinition *particle, const G4Material *material, G4double range)
virtual G4bool StoreMaterialCutsCoupleInfo(const G4String &directory, G4bool ascii=false)
G4ProductionCutsTableMessenger * fMessenger
std::vector< std::vector< G4double > * > energyCutTable
G4ProductionCuts * GetProductionCuts() const
size_t GetNumberOfMaterials() const
std::vector< G4Material * >::const_iterator GetMaterialIterator() const