51 name( name ), fermiMotionIsOn( fermiMotionIsOn ), incidentParticle( NULL ),
52 nucleusParticle( NULL ), outputParticle( NULL ),
53 nucleusOutputParticle( NULL ), messenger( NULL )
77 for (
int i( 0 ); i < nmbOfDivs; ++i )
79 G4double binWidth( ( top - bottom ) / nmbOfDivs );
81 curBottom -= binWidth;
85 CexmcHistoManager::Instance()->SetupARHistos(
angularRanges );
101 for (
int i( 0 ); i < nmbOfDivs; ++i )
103 G4double binWidth( ( top - bottom ) / nmbOfDivs );
105 curBottom -= binWidth;
108 #ifdef CEXMC_USE_ROOT
109 CexmcHistoManager::Instance()->AddARHistos( aRange );
119 for ( CexmcAngularRangeList::iterator k(
angularRanges.begin() );
122 if ( opCosThetaSCM <= k->top && opCosThetaSCM > k->bottom )
124 k->top, k->bottom, k->index ) );
146 for ( CexmcAngularRangeList::iterator k( normalizedARanges.begin() );
147 k != normalizedARanges.end(); ++k )
149 if ( top <= k->top && bottom >= k->bottom )
G4bool IsValidCandidateForAngularRange(G4double top, G4double bottom, G4int nmbOfDivs=1) const
void SetAngularRange(G4double top, G4double bottom, G4int nmbOfDivs)
const char * name(G4int ptype)
G4bool ProjectIsRead(void) const
G4bool IsGoodCandidateForAngularRange(G4double top, G4double bottom) const
void AddAngularRange(G4double top, G4double bottom, G4int nmbOfDivs)
void SetTriggeredAngularRanges(G4double opCosThetaSCM)
CexmcProductionModel(const G4String &name="unspecified", G4bool fermiMotionIsOn=false)
CexmcAngularRangeList angularRangesRef
void GetNormalizedAngularRange(const CexmcAngularRangeList &src, CexmcAngularRangeList &dst)
virtual void FermiMotionStatusChangeHook(void)
virtual ~CexmcProductionModel()
static G4RunManager * GetRunManager()
CexmcAngularRangeList angularRanges
CexmcAngularRangeList triggeredAngularRanges
std::vector< CexmcAngularRange > CexmcAngularRangeList
CexmcProductionModelMessenger * messenger