1#include "Framework/Exception/Exception.h"
2#include "SimCore/DetectorConstruction.h"
3#include "SimCore/SensitiveDetector.h"
4#include "SimCore/XsecBiasingOperator.h"
8namespace volumechecks {
22inline bool isInEcal(G4LogicalVolume* vol,
const std::string& vol_to_bias) {
23 const G4String& volumeName = vol->GetName();
24 return ((volumeName.contains(
"Si") || volumeName.contains(
"W") ||
25 volumeName.contains(
"PCB") || volumeName.contains(
"strongback") ||
26 volumeName.contains(
"Glue") || volumeName.contains(
"CFMix") ||
27 volumeName.contains(
"Al") || volumeName.contains(
"C")) &&
28 volumeName.contains(
"volume")) ||
29 (volumeName.contains(
"nohole_motherboard"));
40inline bool isInHcal(G4LogicalVolume* vol,
const std::string& vol_to_bias) {
41 const G4String& volumeName = vol->GetName();
42 return ((volumeName.contains(
"abso") || volumeName.contains(
"ScintBox") ||
43 volumeName.contains(
"scint")) &&
44 volumeName.contains(
"hcal") && volumeName.contains(
"olume"));
58inline bool isInEcalOld(G4LogicalVolume* vol,
const std::string& vol_to_bias) {
59 const G4String& volumeName = vol->GetName();
60 return ((volumeName.contains(
"Si") || volumeName.contains(
"W")) &&
61 volumeName.contains(
"volume"));
72inline bool isInTargetRegion(G4LogicalVolume* vol,
73 const std::string& vol_to_bias) {
74 auto region = vol->GetRegion();
75 return (region and region->GetName().contains(
"target"));
88inline bool isInTargetOnly(G4LogicalVolume* vol,
89 const std::string& vol_to_bias) {
90 return vol->GetName().contains(
"target");
105inline bool nameContains(G4LogicalVolume* vol,
const std::string& vol_to_bias) {
106 return vol->GetName().contains(vol_to_bias);
This namespace is meant to contain all the standard user actions that allow a Geant4 user to interfac...