37 , m_h_n_generations(0)
47 , m_h_part_pdgid_sec(0)
67 , m_ntupleFileName(
"/TruthHitAnalysis/")
68 ,
m_path(
"/TruthHitAnalysis/")
69 , m_thistSvc(
"THistSvc",
name)
131 m_h_vtx_sec_xy =
new TH2D(
"h_vtx_sec_xy",
"vtx_sec_xy", 100,-1200, 1200, 100,-1200, 1200);
167 m_h_barcode =
new TH1D(
"h_truth_barcode",
"truth_barcode", 100,0, 300000);
196 m_tree =
new TTree(
"Truth",
"Truth");
220 return StatusCode::SUCCESS;
243 if (
evtStore()->
retrieve(mcCollection,
"TruthEvent") == StatusCode::SUCCESS) {
245 if (currentGenEventIter != mcCollection->
end()) {
249 const auto &
barcodes = (*currentGenEventIter)->attribute<HepMC::GenEventBarcodes> (
"barcodes");
250 std::map<int,int> id_to_barcode_map;
252 for (
const auto& vtx: (*currentGenEventIter)->vertices()) {
253 int bcode = id_to_barcode_map[vtx->id()];
255 for (HepMC::GenEvent::vertex_const_iterator vtxit=(*currentGenEventIter)->vertices_begin(); vtxit!=(*currentGenEventIter)->vertices_end(); ++vtxit) {
259 double x = vtx->position().x();
260 double y = vtx->position().y();
261 double z = vtx->position().z();
262 double r = std::sqrt(
x*
x+
y*
y);
293 for (
auto currentGenParticle: *(*currentGenEventIter)) {
294 const HepMC::FourVector
mom = currentGenParticle->momentum();
296 int currentGenParticlebarcode = id_to_barcode_map[currentGenParticle->id()];
314 m_barcode->push_back(currentGenParticlebarcode);
315 m_status->push_back(currentGenParticle->status());
317 int pdg = currentGenParticle->pdg_id();
352 return StatusCode::SUCCESS;