51 #ifndef G4ProductionCutsTable_h
52 #define G4ProductionCutsTable_h 1
112 typedef std::vector<G4MaterialCutsCouple*> G4CoupleTable;
113 typedef std::vector<G4MaterialCutsCouple*>::const_iterator CoupleTableIterator;
114 typedef std::vector<G4double> G4CutVectorForAParticle;
115 typedef std::vector<G4CutVectorForAParticle*> G4CutTable;
116 G4CoupleTable coupleTable;
117 G4CutTable rangeCutTable;
118 G4CutTable energyCutTable;
227 enum { FixedStringLengthForStore = 32 };
246 return rangeCutTable[pcIdx];
252 return energyCutTable[pcIdx];
258 return coupleTable.size();
264 return coupleTable[size_t(i)];
270 if(firstUse)
return true;
271 for(G4ProductionCutsTable::CoupleTableIterator itr=coupleTable.begin();
272 itr!=coupleTable.end();itr++){
273 if((*itr)->IsRecalcNeeded())
284 for(G4ProductionCutsTable::CoupleTableIterator itr=coupleTable.begin();itr!=coupleTable.end();itr++){
285 (*itr)->PhysicsTableUpdated();
291 {
return rangeDoubleVector[pcIdx]; }
295 {
return energyDoubleVector[pcIdx]; }
299 {
return defaultProductionCuts; }
302 bool G4ProductionCutsTable::IsCoupleUsedInTheRegion(
309 for(
size_t iMate=0;iMate<nMaterial;iMate++, mItr++){
323 for(CoupleTableIterator cItr=coupleTable.begin();cItr!=coupleTable.end();cItr++)
325 if((*cItr)->GetMaterial()!=aMat)
continue;
326 if((*cItr)->GetProductionCuts()==aCut)
return (*cItr);
335 for(CoupleTableIterator cItr=coupleTable.begin();cItr!=coupleTable.end();cItr++)
337 if((*cItr)==aCouple)
return idx;
361 return &mccConversionTable;