Install fatal handler with default options.
This is meant to be easy to call from python via ctypes.
Install fatal handler with default options.
getRawOccupancy() Read RawOccupancy from Monitoring HIST and write out into local DB
getNoisyStrip() Find noisy strips from hitmaps and write out into xml/db formats
133 m_larEmID=caloIdManager->getEM_ID();
134 if(m_larEmID==
nullptr)
135 throw std::runtime_error(
"ISF_HitAnalysis: Invalid LAr EM ID helper");
136 m_larFcalID=caloIdManager->getFCAL_ID();
137 if(m_larFcalID==
nullptr)
138 throw std::runtime_error(
"ISF_HitAnalysis: Invalid FCAL ID helper");
139 m_larHecID=caloIdManager->getHEC_ID();
140 if(m_larHecID==
nullptr)
141 throw std::runtime_error(
"ISF_HitAnalysis: Invalid HEC ID helper");
142 m_tileID=caloIdManager->getTileID();
143 if(m_tileID==
nullptr)
144 throw std::runtime_error(
"ISF_HitAnalysis: Invalid Tile ID helper");
149 ATH_CHECK( m_tileSamplingFractionKey.initialize() );
151 ATH_CHECK( m_tileCablingSvc.retrieve() );
152 m_tileCabling = m_tileCablingSvc->cablingService();
157 if (!m_extrapolator.empty() && m_extrapolator.retrieve().isFailure()) {
158 return StatusCode::FAILURE;
165 if(
detStore()->contains< AthenaAttributeList >( m_MC_DIGI_PARAM ) )
170 ATH_MSG_ERROR(
"Could not register callback for "<< m_MC_DIGI_PARAM );
171 return StatusCode::FAILURE;
179 if(
detStore()->contains< AthenaAttributeList >( m_MC_SIM_PARAM ) )
184 ATH_MSG_ERROR(
"Could not register callback for "<< m_MC_SIM_PARAM );
185 return StatusCode::FAILURE;
193 ATH_CHECK (m_FastCaloSimCaloExtrapolation.retrieve());
201 m_particleDataTable = (HepPDT::ParticleDataTable*) m_partPropSvc->PDT();
202 if(m_particleDataTable ==
nullptr) {
204 return StatusCode::FAILURE;
207 std::unique_ptr<TFile> dummyFile = std::unique_ptr<TFile>(TFile::Open(
"dummyFile.root",
"RECREATE"));
208 m_tree =
new TTree(
"FCS_ParametrizationInput",
"FCS_ParametrizationInput");
209 std::string fullNtupleName =
"/"+m_ntupleFileName+
"/"+m_ntupleTreeName;
210 StatusCode sc = m_thistSvc->regTree(fullNtupleName, m_tree);
211 if (
sc.isFailure() || !m_tree )
213 ATH_MSG_ERROR(
"Unable to register TTree: " << fullNtupleName);
214 return StatusCode::FAILURE;
220 ATH_MSG_INFO(
"Successfull registered TTree: " << fullNtupleName);
222 m_hit_x =
new std::vector<float>;
223 m_hit_y =
new std::vector<float>;
224 m_hit_z =
new std::vector<float>;
225 m_hit_energy =
new std::vector<float>;
226 m_hit_time =
new std::vector<float>;
227 m_hit_identifier =
new std::vector<Long64_t>;
228 m_hit_cellidentifier =
new std::vector<Long64_t>;
229 m_islarbarrel =
new std::vector<bool>;
230 m_islarendcap =
new std::vector<bool>;
231 m_islarhec =
new std::vector<bool>;
232 m_islarfcal =
new std::vector<bool>;
233 m_istile =
new std::vector<bool>;
234 m_hit_sampling =
new std::vector<int>;
235 m_hit_samplingfraction =
new std::vector<float>;
237 m_truth_energy =
new std::vector<float>;
238 m_truth_px =
new std::vector<float>;
239 m_truth_py =
new std::vector<float>;
240 m_truth_pz =
new std::vector<float>;
241 m_truth_pdg =
new std::vector<int>;
242 m_truth_barcode =
new std::vector<int>;
243 m_truth_vtxbarcode =
new std::vector<int>;
245 m_cluster_energy =
new std::vector<float>;
246 m_cluster_eta =
new std::vector<float>;
247 m_cluster_phi =
new std::vector<float>;
248 m_cluster_size =
new std::vector<unsigned>;
249 m_cluster_cellID =
new std::vector<std::vector<Long64_t > >;
251 m_cell_identifier =
new std::vector<Long64_t>;
252 m_cell_energy =
new std::vector<float>;
253 m_cell_sampling =
new std::vector<int>;
255 m_g4hit_energy =
new std::vector<float>;
256 m_g4hit_time =
new std::vector<float>;
257 m_g4hit_identifier =
new std::vector<Long64_t>;
258 m_g4hit_cellidentifier =
new std::vector<Long64_t>;
259 m_g4hit_samplingfraction =
new std::vector<float>;
260 m_g4hit_sampling =
new std::vector<int>;
266 m_final_cell_energy =
new std::vector<Float_t>;
267 m_final_hit_energy =
new std::vector<Float_t>;
268 m_final_g4hit_energy =
new std::vector<Float_t>;
270 m_newTTC_entrance_eta =
new std::vector<std::vector<float> >;
271 m_newTTC_entrance_phi =
new std::vector<std::vector<float> >;
272 m_newTTC_entrance_r =
new std::vector<std::vector<float> >;
273 m_newTTC_entrance_z =
new std::vector<std::vector<float> >;
274 m_newTTC_entrance_detaBorder =
new std::vector<std::vector<float> >;
275 m_newTTC_entrance_OK =
new std::vector<std::vector<bool> >;
276 m_newTTC_back_eta =
new std::vector<std::vector<float> >;
277 m_newTTC_back_phi =
new std::vector<std::vector<float> >;
278 m_newTTC_back_r =
new std::vector<std::vector<float> >;
279 m_newTTC_back_z =
new std::vector<std::vector<float> >;
280 m_newTTC_back_detaBorder =
new std::vector<std::vector<float> >;
281 m_newTTC_back_OK =
new std::vector<std::vector<bool> >;
282 m_newTTC_mid_eta =
new std::vector<std::vector<float> >;
283 m_newTTC_mid_phi =
new std::vector<std::vector<float> >;
284 m_newTTC_mid_r =
new std::vector<std::vector<float> >;
285 m_newTTC_mid_z =
new std::vector<std::vector<float> >;
286 m_newTTC_mid_detaBorder =
new std::vector<std::vector<float> >;
287 m_newTTC_mid_OK =
new std::vector<std::vector<bool> >;
288 m_newTTC_IDCaloBoundary_eta =
new std::vector<float>;
289 m_newTTC_IDCaloBoundary_phi =
new std::vector<float>;
290 m_newTTC_IDCaloBoundary_r =
new std::vector<float>;
291 m_newTTC_IDCaloBoundary_z =
new std::vector<float>;
292 m_newTTC_Angle3D =
new std::vector<float>;
293 m_newTTC_AngleEta =
new std::vector<float>;
295 m_MuonEntryLayer_E =
new std::vector<float>;
296 m_MuonEntryLayer_px =
new std::vector<float>;
297 m_MuonEntryLayer_py =
new std::vector<float>;
298 m_MuonEntryLayer_pz =
new std::vector<float>;
299 m_MuonEntryLayer_x =
new std::vector<float>;
300 m_MuonEntryLayer_y =
new std::vector<float>;
301 m_MuonEntryLayer_z =
new std::vector<float>;
302 m_MuonEntryLayer_pdg =
new std::vector<int>;
305 if(m_saveAllBranches){
306 m_tree->Branch(
"HitX", &m_hit_x);
307 m_tree->Branch(
"HitY", &m_hit_y);
308 m_tree->Branch(
"HitZ", &m_hit_z);
309 m_tree->Branch(
"HitE", &m_hit_energy);
310 m_tree->Branch(
"HitT", &m_hit_time);
311 m_tree->Branch(
"HitIdentifier", &m_hit_identifier);
312 m_tree->Branch(
"HitCellIdentifier", &m_hit_cellidentifier);
313 m_tree->Branch(
"HitIsLArBarrel", &m_islarbarrel);
314 m_tree->Branch(
"HitIsLArEndCap", &m_islarendcap);
315 m_tree->Branch(
"HitIsHEC", &m_islarhec);
316 m_tree->Branch(
"HitIsFCAL", &m_islarfcal);
317 m_tree->Branch(
"HitIsTile", &m_istile);
318 m_tree->Branch(
"HitSampling", &m_hit_sampling);
319 m_tree->Branch(
"HitSamplingFraction", &m_hit_samplingfraction);
321 m_tree->Branch(
"CellIdentifier", &m_cell_identifier);
322 m_tree->Branch(
"CellE", &m_cell_energy);
323 m_tree->Branch(
"CellSampling", &m_cell_sampling);
325 m_tree->Branch(
"G4HitE", &m_g4hit_energy);
326 m_tree->Branch(
"G4HitT", &m_g4hit_time);
327 m_tree->Branch(
"G4HitIdentifier", &m_g4hit_identifier);
328 m_tree->Branch(
"G4HitCellIdentifier", &m_g4hit_cellidentifier);
329 m_tree->Branch(
"G4HitSamplingFraction",&m_g4hit_samplingfraction);
330 m_tree->Branch(
"G4HitSampling", &m_g4hit_sampling);
334 m_tree->Branch(
"TruthE", &m_truth_energy);
335 m_tree->Branch(
"TruthPx", &m_truth_px);
336 m_tree->Branch(
"TruthPy", &m_truth_py);
337 m_tree->Branch(
"TruthPz", &m_truth_pz);
338 m_tree->Branch(
"TruthPDG", &m_truth_pdg);
339 m_tree->Branch(
"TruthBarcode", &m_truth_barcode);
340 m_tree->Branch(
"TruthVtxBarcode", &m_truth_vtxbarcode);
343 m_tree->Branch(
"ClusterE", &m_cluster_energy);
344 m_tree->Branch(
"ClusterEta", &m_cluster_eta);
345 m_tree->Branch(
"ClusterPhi", &m_cluster_phi);
346 m_tree->Branch(
"ClusterSize", &m_cluster_size);
347 m_tree->Branch(
"ClusterCellID", &m_cluster_cellID);
352 m_tree->Branch(
"AllCells", &m_oneeventcells);
357 for (Int_t
i = 0;
i < MAX_LAYER;
i++)
368 m_tree->Branch(
"cell_energy", &m_final_cell_energy);
369 m_tree->Branch(
"hit_energy", &m_final_hit_energy);
370 m_tree->Branch(
"g4hit_energy", &m_final_g4hit_energy);
373 m_tree->Branch(
"total_cell_energy", &m_total_cell_e);
374 m_tree->Branch(
"total_hit_energy", &m_total_hit_e);
375 m_tree->Branch(
"total_g4hit_energy", &m_total_g4hit_e);
378 m_tree->Branch(
"newTTC_back_eta",&m_newTTC_back_eta);
379 m_tree->Branch(
"newTTC_back_phi",&m_newTTC_back_phi);
380 m_tree->Branch(
"newTTC_back_r",&m_newTTC_back_r);
381 m_tree->Branch(
"newTTC_back_z",&m_newTTC_back_z);
382 m_tree->Branch(
"newTTC_back_detaBorder",&m_newTTC_back_detaBorder);
383 m_tree->Branch(
"newTTC_back_OK",&m_newTTC_back_OK);
384 m_tree->Branch(
"newTTC_entrance_eta",&m_newTTC_entrance_eta);
385 m_tree->Branch(
"newTTC_entrance_phi",&m_newTTC_entrance_phi);
386 m_tree->Branch(
"newTTC_entrance_r",&m_newTTC_entrance_r);
387 m_tree->Branch(
"newTTC_entrance_z",&m_newTTC_entrance_z);
388 m_tree->Branch(
"newTTC_entrance_detaBorder",&m_newTTC_entrance_detaBorder);
389 m_tree->Branch(
"newTTC_entrance_OK",&m_newTTC_entrance_OK);
390 m_tree->Branch(
"newTTC_mid_eta",&m_newTTC_mid_eta);
391 m_tree->Branch(
"newTTC_mid_phi",&m_newTTC_mid_phi);
392 m_tree->Branch(
"newTTC_mid_r",&m_newTTC_mid_r);
393 m_tree->Branch(
"newTTC_mid_z",&m_newTTC_mid_z);
394 m_tree->Branch(
"newTTC_mid_detaBorder",&m_newTTC_mid_detaBorder);
395 m_tree->Branch(
"newTTC_mid_OK",&m_newTTC_mid_OK);
396 m_tree->Branch(
"newTTC_IDCaloBoundary_eta",&m_newTTC_IDCaloBoundary_eta);
397 m_tree->Branch(
"newTTC_IDCaloBoundary_phi",&m_newTTC_IDCaloBoundary_phi);
398 m_tree->Branch(
"newTTC_IDCaloBoundary_r",&m_newTTC_IDCaloBoundary_r);
399 m_tree->Branch(
"newTTC_IDCaloBoundary_z",&m_newTTC_IDCaloBoundary_z);
400 m_tree->Branch(
"newTTC_Angle3D",&m_newTTC_Angle3D);
401 m_tree->Branch(
"newTTC_AngleEta",&m_newTTC_AngleEta);
403 m_tree->Branch(
"MuonEntryLayer_E",&m_MuonEntryLayer_E);
404 m_tree->Branch(
"MuonEntryLayer_px",&m_MuonEntryLayer_px);
405 m_tree->Branch(
"MuonEntryLayer_py",&m_MuonEntryLayer_py);
406 m_tree->Branch(
"MuonEntryLayer_pz",&m_MuonEntryLayer_pz);
407 m_tree->Branch(
"MuonEntryLayer_x",&m_MuonEntryLayer_x);
408 m_tree->Branch(
"MuonEntryLayer_y",&m_MuonEntryLayer_y);
409 m_tree->Branch(
"MuonEntryLayer_z",&m_MuonEntryLayer_z);
410 m_tree->Branch(
"MuonEntryLayer_pdg",&m_MuonEntryLayer_pdg);
413 return StatusCode::SUCCESS;