musrsim/include/musrParameters.hh
Kamil Sedlak 6220698f22 9.5.2012 Kamil Sedlak
Several smaller improvements, should not have impact on the simulation.
2012-05-09 12:02:43 +00:00

84 lines
6.4 KiB
C++

/***************************************************************************
* musrSim - the program for the simulation of (mainly) muSR instruments. *
* More info on http://lmu.web.psi.ch/simulation/index.html . *
* musrSim is based od Geant4 (http://geant4.web.cern.ch/geant4/) *
* *
* Copyright (C) 2009 by Paul Scherrer Institut, 5232 Villigen PSI, *
* Switzerland *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the Free Software *
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. *
***************************************************************************/
#ifndef musrParameters_h
#define musrParameters_h 1
#include "globals.hh"
class musrParameters {
public:
musrParameters(G4String steeringFileName);
~musrParameters();
static musrParameters* GetInstance();
static G4String mySteeringFileName; // name of the steering file (e.g. the *.mac file)
static G4String myStopFileName; // name of the stop file (e.g. the *.stop file), which will stop the run if it is created
static G4String myRandomNumberFileName; // name of the file with random numbers for RandomOption=3 in musrDetectorMessenger
static G4bool storeOnlyEventsWithHits; // variable specifying whether to store interesting
// or all events into the ROOT tree. (default = true)
static G4int storeOnlyEventsWithHitInDetID; // simillar to "storeOnlyEventsWithHits". The event is stored
// only and only if there was a hit in the detector with the ID
// equal to storeOnlyEventsWithHitInDetID.
// The storeOnlyEventsWithHitInDetID has to be non zero.
static G4double signalSeparationTime; // minimim time separation between two subsequent signal
static G4bool storeOnlyTheFirstTimeHit; // if true, only the hit that happened first will be
// stored, anything else will be ignored
// (usefull for some special studies, not for a serious simulation)
static G4int storeOnlyEventsWithMuonsDecayedInDetID;
static G4bool killAllElectrons; // if true, all electron tracks will be deleted (usefull for the studies of the muon beam)
static G4bool killAllPositrons; // if true, all positron tracks will be deleted (usefull for the studies of the muon beam)
static G4bool killAllGammas; //
static G4bool killAllNeutrinos; //
//cks static G4bool includeMuoniumProcesses; // If true, includes Muonium formation and all
//cks // other Mu-related processes in the simulation
static G4bool boolG4GeneralParticleSource; // if true, G4GeneralParticleSource will be initialised instead of G4ParticleGun
// - needed for the radioactive source
static G4bool boolG4OpticalPhotons; // if true, optical photons will be used (in the sensitive scintillators)
static G4bool boolG4OpticalPhotonsUnprocess; // if true, optical photons will not be processed - it might be
// usefull if the user wants to preselect some interesting events,
// and then to run the time-consuming processing of opt. photons
// again only for the interesting events. This way the random number
// generator can generate the reproducible events.
// This option only works with "boolG4OpticalPhotons".
static G4bool field_DecayWithSpin; // if true, then the routins for calculating the magnetic field will
// use more precise argument. This variable is set to "true" by
// the SteppinAction and reset to "false" in the GetFieldValue.
// It is being changed on step by step basis.
static G4int nrOfEventsToBeGenerated; // Nr of events to be simulated in this run (set by /run/beamOn command)
static G4bool finiteRiseTimeInScintillator; // if true, rise time will be simulated in the scintillator. For some strange
// reason, Geant4 requires that this is specifically allowed. We set it true
// as soon as "FASTSCINTILLATIONRISETIME" or "SLOWSCINTILLATIONRISETIME" is set.
static G4int maximumTimePerEvent; // maximum time (in seconds) allowed for an event simulation - if exceeded, kill the event and
// proceed to the next one.
static G4int maximumNrOfStepsPerTrack; // Maximum number of steps per track - if exceeded, kill the track and proceed with a next one.
private:
static musrParameters* pointerToParameters;
G4bool boolG4RegionRequested; // variable used internally just to check that no new volume is defined after
// a G4Region has been requested - perhaps unnecessary check, but just to be on the safe side
};
#endif