-void TG4PhysicsManager::SwitchIsCutVector(TG3Cut cut)
-{
-// Updates the vector of booleans (fIsCutVector) for the specified cut.
-// ---
-
- switch (cut) {
- case kCUTGAM:
- (*fIsCutVector)[kGamma] = true;
- break;
- case kBCUTE:
- (*fIsCutVector)[kGamma] = true;
- break;
- case kBCUTM:
- (*fIsCutVector)[kGamma] = true;
- break;
- case kCUTELE:
- (*fIsCutVector)[kElectron] = true;
- break;
- case kDCUTE:
- (*fIsCutVector)[kElectron] = true;
- break;
- case kDCUTM:
- (*fIsCutVector)[kElectron] = true;
- break;
- case kCUTNEU:
- (*fIsCutVector)[kNeutralHadron] = true;
- break;
- case kCUTHAD:
- (*fIsCutVector)[kChargedHadron] = true;
- break;
- case kCUTMUO:
- (*fIsCutVector)[kMuon] = true;
- break;
- default:
- break;
- }
-}
-
-void TG4PhysicsManager::SwitchIsFlagVector(TG3Flag flag)
-{
-// Updates the vector of booleans (fIsFlagVector) for the specified flag.
-// ---
-
- switch (flag) {
- case kPAIR:
- // gamma
- (*fIsFlagVector)[kGamma] = true;
- break;
- case kCOMP:
- // gamma
- (*fIsFlagVector)[kGamma] = true;
- break;
- case kPHOT:
- // gamma
- (*fIsFlagVector)[kGamma] = true;
- break;
- case kPFIS:
- // gamma
- (*fIsFlagVector)[kGamma] = true;
- break;
- case kDRAY:
- // all charged particles
- (*fIsFlagVector)[kElectron] = true;
- (*fIsFlagVector)[kEplus] = true;
- (*fIsFlagVector)[kChargedHadron] = true;
- (*fIsFlagVector)[kMuon] = true;
- break;
- case kANNI:
- // e+ only
- (*fIsFlagVector)[kEplus] = true;
- break;
- case kBREM:
- // e-/e+, muons
- (*fIsFlagVector)[kElectron] = true;
- (*fIsFlagVector)[kEplus] = true;
- (*fIsFlagVector)[kMuon] = true;
- break;
- case kHADR:
- // hadrons
- (*fIsFlagVector)[kNeutralHadron] = true;
- (*fIsFlagVector)[kChargedHadron] = true;
- break;
- case kMUNU:
- // muons
- (*fIsFlagVector)[kMuon] = true;
- break;
- case kDCAY:
- // any
- (*fIsFlagVector)[kAny] = true;
- break;
- case kLOSS:
- // all charged particles
- (*fIsFlagVector)[kElectron] = true;
- (*fIsFlagVector)[kEplus] = true;
- (*fIsFlagVector)[kChargedHadron] = true;
- (*fIsFlagVector)[kMuon] = true;
- break;
- case kMULS:
- // all charged particles
- (*fIsFlagVector)[kElectron] = true;
- (*fIsFlagVector)[kEplus] = true;
- (*fIsFlagVector)[kChargedHadron] = true;
- (*fIsFlagVector)[kMuon] = true;
- break;
- default:
- break;
- }
-}
-
-TG3Cut TG4PhysicsManager::GetG3Cut(G4String cutName)
-{
-// Retrieves corresponding TG3Cut constant from the cutName.
-// ---
-
- if (cutName == fG3CutNameVector[kCUTGAM]) return kCUTGAM;
- else if (cutName == fG3CutNameVector[kBCUTE]) return kBCUTE;
- else if (cutName == fG3CutNameVector[kBCUTM]) return kBCUTM;
- else if (cutName == fG3CutNameVector[kCUTELE]) return kCUTELE;
- else if (cutName == fG3CutNameVector[kDCUTE]) return kDCUTE;
- else if (cutName == fG3CutNameVector[kDCUTM]) return kDCUTM;
- else if (cutName == fG3CutNameVector[kCUTNEU]) return kCUTNEU;
- else if (cutName == fG3CutNameVector[kCUTHAD]) return kCUTHAD;
- else if (cutName == fG3CutNameVector[kCUTMUO]) return kCUTMUO;
- else return kNoG3Cuts;
-}
-
-TG3Flag TG4PhysicsManager::GetG3Flag(G4String flagName)
-{
-// Retrieves corresponding TG3Flag constant from the flagName.
-// ---
-
- if (flagName == fG3FlagNameVector[kPAIR]) return kPAIR;
- else if (flagName == fG3FlagNameVector[kCOMP]) return kCOMP;
- else if (flagName == fG3FlagNameVector[kPHOT]) return kPHOT;
- else if (flagName == fG3FlagNameVector[kPFIS]) return kPFIS;
- else if (flagName == fG3FlagNameVector[kDRAY]) return kDRAY;
- else if (flagName == fG3FlagNameVector[kANNI]) return kANNI;
- else if (flagName == fG3FlagNameVector[kBREM]) return kBREM;
- else if (flagName == fG3FlagNameVector[kHADR]) return kHADR;
- else if (flagName == fG3FlagNameVector[kMUNU]) return kMUNU;
- else if (flagName == fG3FlagNameVector[kDCAY]) return kDCAY;
- else if (flagName == fG3FlagNameVector[kLOSS]) return kLOSS;
- else if (flagName == fG3FlagNameVector[kMULS]) return kMULS;
- else return kNoG3Flags;
-}
-
-// public methods
-
-void TG4PhysicsManager::BuildPhysics()
-{
-// Empty function - not needed in G4.
-// (Physics is built within /run/initialize.)
-
- TG4Globals::Warning(
- "TG4PhysicsManager::BuildPhysics: is empty function in G4 MC.");
-}
-
-void TG4PhysicsManager::SetCut(const char* cutName, Float_t cutValue)
-{
-// Sets the specified cut.
-// ---
-
- if (fLock) LockException();
- TG3Cut g3Cut = GetG3Cut(cutName);
- if (g3Cut != kNoG3Cuts)
- SetCut(g3Cut, cutValue);
- else {
- G4String text = "TG4PhysicsManager::SetCut:\n";
- text = text + " Parameter " + cutName;
- text = text + " is not implemented.";
- TG4Globals::Warning(text);
- }
-}
-
-void TG4PhysicsManager::SetProcess(const char* flagName, Int_t flagValue)
-{
-// Sets the specified process control.
-// ---
-
- if (fLock) LockException();
- TG3Flag g3Flag = GetG3Flag(flagName);
- if (g3Flag != kNoG3Flags)
- SetProcess(g3Flag, flagValue);
- else {
- G4String text = "TG4PhysicsManager::SetProcess:\n";
- text = text + " Parameter " + flagName;
- text = text + " is not implemented.";
- TG4Globals::Warning(text);
- }
-}