Skip to content
Snippets Groups Projects

Added first 10 MC truth at ST1, ST2, ST3 and updated fiducial for d0...

Closed Sinead Eley requested to merge seley/calypso:seley_dev into master
3 files
+ 76
5
Compare changes
  • Side-by-side
  • Inline
Files
3
@@ -101,7 +101,7 @@ StatusCode NtupleDumperAlg::initialize()
ATH_CHECK(m_triggerContainer.initialize());
ATH_CHECK(m_preshowerContainer.initialize());
ATH_CHECK(m_ecalContainer.initialize());
ATH_CHECK(m_ecal2Container.initialize());
//ATH_CHECK(m_ecal2Container.initialize());
ATH_CHECK(m_clusterContainer.initialize());
ATH_CHECK(m_simDataCollection.initialize());
ATH_CHECK(m_FaserTriggerData.initialize());
@@ -375,6 +375,33 @@ StatusCode NtupleDumperAlg::initialize()
m_tree->Branch("truth_dec_x", &m_truth_dec_x);
m_tree->Branch("truth_dec_y", &m_truth_dec_y);
m_tree->Branch("truth_dec_z", &m_truth_dec_z);
m_tree->Branch("truth_isFiducial", &m_truth_isFiducial);
m_tree->Branch("truth_st0_x", &m_truth_st_x[0]);
m_tree->Branch("truth_st0_y", &m_truth_st_y[0]);
m_tree->Branch("truth_st0_z", &m_truth_st_z[0]);
m_tree->Branch("truth_st1_x", &m_truth_st_x[1]);
m_tree->Branch("truth_st1_y", &m_truth_st_y[1]);
m_tree->Branch("truth_st1_z", &m_truth_st_z[1]);
m_tree->Branch("truth_st2_x", &m_truth_st_x[2]);
m_tree->Branch("truth_st2_y", &m_truth_st_y[2]);
m_tree->Branch("truth_st2_z", &m_truth_st_z[2]);
m_tree->Branch("truth_st3_x", &m_truth_st_x[3]);
m_tree->Branch("truth_st3_y", &m_truth_st_y[3]);
m_tree->Branch("truth_st3_z", &m_truth_st_z[3]);
m_tree->Branch("truth_st0_px", &m_truth_st_px[0]);
m_tree->Branch("truth_st0_py", &m_truth_st_py[0]);
m_tree->Branch("truth_st0_pz", &m_truth_st_pz[0]);
m_tree->Branch("truth_st1_px", &m_truth_st_px[1]);
m_tree->Branch("truth_st1_py", &m_truth_st_py[1]);
m_tree->Branch("truth_st1_pz", &m_truth_st_pz[1]);
m_tree->Branch("truth_st2_px", &m_truth_st_px[2]);
m_tree->Branch("truth_st2_py", &m_truth_st_py[2]);
m_tree->Branch("truth_st2_pz", &m_truth_st_pz[2]);
m_tree->Branch("truth_st3_px", &m_truth_st_px[3]);
m_tree->Branch("truth_st3_py", &m_truth_st_py[3]);
m_tree->Branch("truth_st3_pz", &m_truth_st_pz[3]);
// for mother + daughter particle truth infomation
@@ -393,6 +420,7 @@ StatusCode NtupleDumperAlg::initialize()
m_tree->Branch("truthd0_x", &m_truthd0_x);
m_tree->Branch("truthd0_y", &m_truthd0_y);
m_tree->Branch("truthd0_z", &m_truthd0_z);
m_tree->Branch("truthd0_isFiducial", &m_truthd0_isFiducial);
m_tree->Branch("truthd1_P", &m_truthd1_P);
m_tree->Branch("truthd1_px", &m_truthd1_px);
@@ -401,6 +429,7 @@ StatusCode NtupleDumperAlg::initialize()
m_tree->Branch("truthd1_x", &m_truthd1_x);
m_tree->Branch("truthd1_y", &m_truthd1_y);
m_tree->Branch("truthd1_z", &m_truthd1_z);
m_tree->Branch("truthd1_isFiducial", &m_truthd1_isFiducial);
m_tree->Branch("vertex_x", &m_vertex_x, "vertex_x/D");
m_tree->Branch("vertex_y", &m_vertex_y, "vertex_y/D");
@@ -590,15 +619,15 @@ StatusCode NtupleDumperAlg::execute(const EventContext &ctx) const
SG::ReadHandle<xAOD::WaveformHitContainer> ecalContainer { m_ecalContainer, ctx };
ATH_CHECK(ecalContainer.isValid());
SG::ReadHandle<xAOD::WaveformHitContainer> ecal2Container { m_ecal2Container, ctx };
ATH_CHECK(ecal2Container.isValid());
//SG::ReadHandle<xAOD::WaveformHitContainer> ecal2Container { m_ecal2Container, ctx };
//ATH_CHECK(ecal2Container.isValid());
FillWaveBranches(*vetoNuContainer);
FillWaveBranches(*vetoContainer);
FillWaveBranches(*triggerContainer);
FillWaveBranches(*preshowerContainer);
FillWaveBranches(*ecalContainer);
FillWaveBranches(*ecal2Container);
//FillWaveBranches(*ecal2Container);
// if real data, store charge in histograms from random events
if (!isMC) {
@@ -759,6 +788,21 @@ StatusCode NtupleDumperAlg::execute(const EventContext &ctx) const
m_truth_pz.push_back(particle->p4().Z());
m_truth_m.push_back(particle->m());
m_truth_pdg.push_back(particle->pdgId());
m_truth_isFiducial.push_back(m_fiducialParticleTool->isFiducial(particle->barcode()));
auto positions = m_fiducialParticleTool->getTruthPositions(particle->barcode()); // Add truth position information at each station
for (int station = 0; station < 4; ++station) {
m_truth_st_x[station].push_back(positions[station].x());
m_truth_st_y[station].push_back(positions[station].y());
m_truth_st_z[station].push_back(positions[station].z());
}
auto momenta = m_fiducialParticleTool->getTruthMomenta(particle->barcode()); // Add truth momentum information at each station
for (int station = 0; station < 4; ++station) {
m_truth_st_px[station].push_back(momenta[station].x());
m_truth_st_py[station].push_back(momenta[station].y());
m_truth_st_pz[station].push_back(momenta[station].z());
}
if ( particle->hasProdVtx()) {
m_truth_prod_x.push_back(particle->prodVtx()->x());
@@ -788,6 +832,7 @@ StatusCode NtupleDumperAlg::execute(const EventContext &ctx) const
m_truthM_px.push_back(particle->p4().X());
m_truthM_py.push_back(particle->p4().Y());
m_truthM_pz.push_back(particle->p4().Z());
if ( particle->hasDecayVtx()) { // decay vertex for A' particle
m_truthM_x.push_back(particle->decayVtx()->x());
@@ -805,6 +850,7 @@ StatusCode NtupleDumperAlg::execute(const EventContext &ctx) const
m_truthd0_px.push_back(particle->p4().X());
m_truthd0_py.push_back(particle->p4().Y());
m_truthd0_pz.push_back(particle->p4().Z());
m_truthd0_isFiducial.push_back(m_fiducialParticleTool->isFiducial(particle->barcode()));
if ( particle->hasProdVtx()) {
m_truthd0_x.push_back(particle->prodVtx()->x());
@@ -826,6 +872,7 @@ StatusCode NtupleDumperAlg::execute(const EventContext &ctx) const
m_truthd1_px.push_back(particle->p4().X());
m_truthd1_py.push_back(particle->p4().Y());
m_truthd1_pz.push_back(particle->p4().Z());
m_truthd1_isFiducial.push_back(m_fiducialParticleTool->isFiducial(particle->barcode()));
if ( particle->hasProdVtx()) {
m_truthd1_x.push_back(particle->prodVtx()->x());
@@ -1595,6 +1642,18 @@ NtupleDumperAlg::clearTree() const
m_truth_dec_x.clear();
m_truth_dec_y.clear();
m_truth_dec_z.clear();
m_truth_isFiducial.clear();
for (int station = 0; station < 4; ++station) {
m_truth_st_x[station].clear();
m_truth_st_y[station].clear();
m_truth_st_z[station].clear();
}
for (int station = 0; station < 4; ++station) {
m_truth_st_px[station].clear();
m_truth_st_py[station].clear();
m_truth_st_pz[station].clear();
}
m_truthM_P.clear();
m_truthM_px.clear();
@@ -1611,6 +1670,7 @@ NtupleDumperAlg::clearTree() const
m_truthd0_x.clear();
m_truthd0_y.clear();
m_truthd0_z.clear();
m_truthd0_isFiducial.clear();
m_truthd1_P.clear();
m_truthd1_px.clear();
@@ -1619,6 +1679,7 @@ NtupleDumperAlg::clearTree() const
m_truthd1_x.clear();
m_truthd1_y.clear();
m_truthd1_z.clear();
m_truthd1_isFiducial.clear();
m_vertex_x = NaN;
m_vertex_y = NaN;
Loading