18.2.2011 Kamil Sedlak

1) Correction in rundom nr generator (option 3)
     - still there is a bug in the printing of time, for which the
       run is running (shown is a large negative number) - should be
       fixed.
  2) Change in physics list which allows to set rise time in the scintillators
This commit is contained in:
2011-02-18 15:54:27 +00:00
parent c2025fea97
commit 1ccd56485e
8 changed files with 63 additions and 22 deletions

View File

@@ -46,6 +46,7 @@ G4bool musrPrimaryGeneratorAction::setRandomNrSeedAccordingEventNr=0;
G4bool musrPrimaryGeneratorAction::setRandomNrSeedFromFile=0;
G4bool musrPrimaryGeneratorAction::setRandomNrSeedFromFile_RNDM=0;
G4int musrPrimaryGeneratorAction::nRndmEventToSaveSeeds=-2;
G4int musrPrimaryGeneratorAction::lastEventID_in_pointerToSeedVector=0;
std::vector<int> * musrPrimaryGeneratorAction::pointerToSeedVector=NULL;
std::vector<int> * musrPrimaryGeneratorAction::GetPointerToSeedVector() {
@@ -127,7 +128,7 @@ void musrPrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent)
// Set or read the seeds of random number generator
boolPrintInfoAboutGeneratedParticles=false;
SetOrReadTheRandomNumberSeeds(anEvent->GetEventID());
SetOrReadTheRandomNumberSeeds(anEvent);
// If radioactive source is used, use G4GeneralParticleSource :
if (musrParameters::boolG4GeneralParticleSource) {
@@ -462,7 +463,8 @@ void musrPrimaryGeneratorAction::SetTurtleInputFileToEventNo(G4int lineNumberOfT
}
}
//===============================================================================
void musrPrimaryGeneratorAction::SetOrReadTheRandomNumberSeeds(G4int eventID) {
void musrPrimaryGeneratorAction::SetOrReadTheRandomNumberSeeds(G4Event* anEvent) {
G4int eventID = anEvent->GetEventID();
if (eventID == nRndmEventToSaveSeeds) {
G4cout<<"musrPrimaryGeneratorAction::SetOrReadTheRandomNumberSeeds: S A V I N G R A N D O M N O. S E E D S"<<G4endl;
G4cout<<" (for even nr. "<<eventID<<")"<<G4endl;
@@ -477,13 +479,27 @@ void musrPrimaryGeneratorAction::SetOrReadTheRandomNumberSeeds(G4int eventID) {
}
}
if (setRandomNrSeedFromFile) {
// G4cout<<"RandomNrInitialisers.size()="<<RandomNrInitialisers->size()<<G4endl;
if (eventID < int(pointerToSeedVector->size())) {
G4cout <<"musrEventAction.cc: seed will be set to="<< pointerToSeedVector->at(eventID)<<G4endl;
CLHEP::HepRandom::setTheSeed(pointerToSeedVector->at(eventID));
CLHEP::RandGauss::setFlag(false);
boolPrintInfoAboutGeneratedParticles = true;
// // G4cout<<"RandomNrInitialisers.size()="<<RandomNrInitialisers->size()<<G4endl;
// if (eventID < int(pointerToSeedVector->size())) {
// // if (eventID < lastEventID_in_pointerToSeedVector)
// G4cout <<"musrEventAction.cc: seed will be set to="<< pointerToSeedVector->at(eventID)<<G4endl;
// anEvent -> SetEventID(pointerToSeedVector->at(eventID));
// // CLHEP::HepRandom::setTheSeed(pointerToSeedVector->at(eventID));
// CLHEP::HepRandom::setTheSeed(eventID);
// CLHEP::RandGauss::setFlag(false);
// boolPrintInfoAboutGeneratedParticles = true;
// }
if (!pointerToSeedVector->empty()) {
eventID = pointerToSeedVector->back();
pointerToSeedVector->pop_back();
anEvent -> SetEventID(eventID);
}
else {
eventID = ++lastEventID_in_pointerToSeedVector;
}
CLHEP::HepRandom::setTheSeed(eventID);
CLHEP::RandGauss::setFlag(false);
// G4cout <<"musrPrimaryGeneratorAction.cc: seed will be set to="<< eventID<<G4endl;
}
else if (setRandomNrSeedAccordingEventNr) {
// long seeds[2];