Install fatal handler with default options.
This is meant to be easy to call from python via ctypes.
Install fatal handler with default options.
getLorentzAngle() Read LorentzAngle from HIST and write out into local DB
getBSErrors() Read BSErrors from Monitoring HIST and write out into local DB
getEfficiency() Read Efficiency from Monitoring HIST and write out into local DB
getRawOccupancy() Read RawOccupancy from Monitoring HIST and write out into local DB
getNoiseOccupancy() Read NoiseOccupancy from HIST and write out into local DB
getNoisyStrip() Find noisy strips from hitmaps and write out into xml/db formats
beginning of the loop of channels
bad bit newly found
known bad bit
for low noisy cells
for high noisy cells
0.01 is used to scale "PER" to the same order of magnitude to "SIG"
smaller deviation: distorted
checking TmaxAmp, Not mixed with MaxAmp and Width
channel information output
Only dead or distorted, or short known BCs are considered below.
index of bc
getCoefficientMap(label, EigenIdxList)
input value:
- label: falvor label in std::string format, could be one of B, C, T, Light
- EigenIdxList is user defined vector containing all eigenvector index that user interested in. output: Map of format map<string, map<string, float>> containing decomposition coefficient of the list of eigenvectors defined by EigenIdxList.
getCoefficients(label, evIdx)
input value:
- label: falvor label in std::string format, could be one of B, C, T, Light
- evIdx: The index of eigenvector user interested in. output value: vector of coefficient values. The order is the same as output given by getListOfOriginalNuisanceParameters()
getListOfOriginalNuisanceParameters(label)
input value:
- label: falvor label in std::string format, could be one of B, C, T, Light output value: List of original nuisance parameter names.
getNumEigenVectors(label)
input value:
- label: falvor label in std::string format, could be one of B, C, T, Light return value: number of eigen vectors used for chosen label. Return 0 if error occured.
now add branches and leaves to the tree
now add branches and leaves to the tree
Definition at line 102 of file G4LegacyTransportTool.cxx.
107 if (m_g4RunManagerHelper.retrieve().isFailure()) {
108 throw std::runtime_error(
"Could not initialize G4RunManagerHelper!");
111 m_pRunMgr = m_g4RunManagerHelper ? m_g4RunManagerHelper->g4RunManager() :
nullptr;
113 throw std::runtime_error(
"G4RunManagerHelper::g4RunManager() returned nullptr.");
116 if(m_physListSvc.retrieve().isFailure()) {
117 throw std::runtime_error(
"Could not initialize ATLAS PhysicsListSvc!");
119 m_physListSvc->SetPhysicsList();
120 ATH_MSG_INFO(
"retireving the Detector Construction tool" );
121 if(m_detConstruction.retrieve().isFailure()) {
122 throw std::runtime_error(
"Could not initialize ATLAS DetectorConstruction!");
125 m_pRunMgr->SetRecordFlux( m_recordFlux, std::make_unique<ISFFluxRecorder>() );
126 m_pRunMgr->SetLogLevel(
int(
msg().
level()) );
127 m_pRunMgr->SetDetConstructionTool( m_detConstruction.get() );
128 m_pRunMgr->SetPhysListSvc(m_physListSvc.typeAndName() );
129 m_pRunMgr->SetQuietMode( m_quietMode );
130 std::unique_ptr<G4AtlasActionInitialization> actionInitialization =
131 std::make_unique<G4AtlasActionInitialization>(&*m_userActionSvc);
132 m_pRunMgr->SetUserInitialization(actionInitialization.release());
134 G4UImanager *ui = G4UImanager::GetUIpointer();
136 if (!m_libList.empty()) {
137 ATH_MSG_INFO(
"G4AtlasAlg specific libraries requested ") ;
138 std::string temp=
"/load "+m_libList;
139 ui->ApplyCommand(temp);
142 if (!m_physList.empty()) {
143 ATH_MSG_INFO(
"requesting a specific physics list "<< m_physList) ;
144 std::string temp=
"/Physics/GetPhysicsList "+m_physList;
145 ui->ApplyCommand(temp);
148 if (!m_fieldMap.empty()) {
149 ATH_MSG_INFO(
"requesting a specific field map "<< m_fieldMap) ;
150 ATH_MSG_INFO(
"the field is initialized straight away") ;
151 std::string temp=
"/MagneticField/Select "+m_fieldMap;
152 ui->ApplyCommand(temp);
153 ui->ApplyCommand(
"/MagneticField/Initialize");
157 ATH_MSG_DEBUG(
"G4 Command: Trying at the end of initializeOnce()");
158 for (
const auto& g4command : m_g4commands) {
159 int returnCode = ui->ApplyCommand( g4command );
160 commandLog(returnCode, g4command);
164 auto* rm = G4RunManager::GetRunManager();
166 throw std::runtime_error(
"Run manager retrieval has failed");
170 if(!m_useMT && rm->ConfirmBeamOnCondition()) {
171 rm->RunInitialization();
174 ATH_MSG_INFO(
"Initializing " << m_physicsInitializationTools.size() <<
" physics initialization tools");
175 for(
auto& physicsTool : m_physicsInitializationTools) {
176 if (physicsTool->initializePhysics().isFailure()) {
177 throw std::runtime_error(
"Failed to initialize physics with tool " + physicsTool.name());
181 if(m_userLimitsSvc.retrieve().isFailure()) {
182 throw std::runtime_error(
"Could not initialize ATLAS UserLimitsSvc!");
185 if (m_activateParallelGeometries) {
186 G4VModularPhysicsList* thePhysicsList=
dynamic_cast<G4VModularPhysicsList*
>(m_physListSvc->GetPhysicsList());
187 if (!thePhysicsList) {
188 throw std::runtime_error(
"Failed dynamic_cast!! this is not a G4VModularPhysicsList!");
190 #if G4VERSION_NUMBER >= 1010
191 std::vector<std::string>& parallelWorldNames=m_detConstruction->GetParallelWorldNames();
192 for (
auto&
it: parallelWorldNames) {
193 thePhysicsList->RegisterPhysics(
new G4ParallelWorldPhysics(
it,
true));