Skip to content
Snippets Groups Projects

SimHitAlg

Merged Savannah Rose Shively requested to merge sshively/calypso:master into master
1 file
+ 23
20
Compare changes
  • Side-by-side
  • Inline
@@ -18,12 +18,33 @@ StatusCode SimHitAlg::initialize()
@@ -18,12 +18,33 @@ StatusCode SimHitAlg::initialize()
ATH_CHECK(histSvc()->regHist("/HIST/modulesSide1", m_moduleSide1));
ATH_CHECK(histSvc()->regHist("/HIST/modulesSide1", m_moduleSide1));
ATH_CHECK(histSvc()->regHist("/HIST/modulesSide2", m_moduleSide2));
ATH_CHECK(histSvc()->regHist("/HIST/modulesSide2", m_moduleSide2));
 
m_plate_preshower = new TH2D("plate", "Scint Hit Plate", 3, -1, 1, 4, 0, 1 );
 
m_plate_trigger = new TH2D("plate", "Scint Hit Plate", 3, -1, 1, 4, 0, 1 );
 
m_plate_veto = new TH2D("plate", "Scint Hit Plate", 3, -1, 1, 4, 0, 1 );
 
ATH_CHECK(histSvc()->regHist("/HIST/plate_preshower", m_plate_preshower));
 
ATH_CHECK(histSvc()->regHist("/HIST/plate_trigger", m_plate_trigger));
 
ATH_CHECK(histSvc()->regHist("/HIST/plate_veto", m_plate_veto));
 
// initialize data handle keys
// initialize data handle keys
ATH_CHECK( m_mcEventKey.initialize() );
ATH_CHECK( m_mcEventKey.initialize() );
ATH_CHECK( m_faserSiHitKey.initialize() );
ATH_CHECK( m_faserSiHitKey.initialize() );
 
 
//Sav things
 
ATH_CHECK( m_preshowerHitKey.initialize() );
 
ATH_CHECK( m_triggerHitKey.initialize() );
 
ATH_CHECK( m_vetoHitKey.initialize() );
 
ATH_MSG_INFO( "Using GenEvent collection with key " << m_mcEventKey.key());
ATH_MSG_INFO( "Using GenEvent collection with key " << m_mcEventKey.key());
ATH_MSG_INFO( "Using Faser SiHit collection with key " << m_faserSiHitKey.key());
ATH_MSG_INFO( "Using Faser SiHit collection with key " << m_faserSiHitKey.key());
 
 
ATH_MSG_INFO( "Using ScintHit collection with key " << m_preshowerHitKey.key());
 
ATH_MSG_INFO( "Using ScintHit collection with key " << m_triggerHitKey.key());
 
ATH_MSG_INFO( "Using ScintHit collection with key " << m_vetoHitKey.key());
 
 
return StatusCode::SUCCESS;
return StatusCode::SUCCESS;
 
 
}
}
StatusCode SimHitAlg::execute()
StatusCode SimHitAlg::execute()
@@ -36,6 +57,14 @@ StatusCode SimHitAlg::execute()
@@ -36,6 +57,14 @@ StatusCode SimHitAlg::execute()
SG::ReadHandle<FaserSiHitCollection> h_siHits(m_faserSiHitKey);
SG::ReadHandle<FaserSiHitCollection> h_siHits(m_faserSiHitKey);
ATH_MSG_INFO("Read FaserSiHitCollection with " << h_siHits->size() << " hits");
ATH_MSG_INFO("Read FaserSiHitCollection with " << h_siHits->size() << " hits");
 
SG::ReadHandle<ScintHitCollection> h_preshowerHits(m_preshowerHitKey);
 
ATH_MSG_INFO("Read ScintHitCollection/Preshower with " << h_preshowerHits->size() << " hits");
 
SG::ReadHandle<ScintHitCollection> h_triggerHits(m_triggerHitKey);
 
ATH_MSG_INFO("Read ScintHitCollection/Trigger with " << h_triggerHits->size() << " hits");
 
SG::ReadHandle<ScintHitCollection> h_vetoHits(m_vetoHitKey);
 
ATH_MSG_INFO("Read ScintHitCollectionVeto with " << h_vetoHits->size() << " hits");
 
 
// Since we have no pile-up, there should always be a single GenEvent in the container
// Since we have no pile-up, there should always be a single GenEvent in the container
const HepMC::GenEvent* ev = (*h_mcEvents)[0];
const HepMC::GenEvent* ev = (*h_mcEvents)[0];
if (ev == nullptr)
if (ev == nullptr)
@@ -46,25 +75,58 @@ StatusCode SimHitAlg::execute()
@@ -46,25 +75,58 @@ StatusCode SimHitAlg::execute()
ATH_MSG_INFO("Event contains " << ev->particles_size() << " truth particles" );
ATH_MSG_INFO("Event contains " << ev->particles_size() << " truth particles" );
// The hit container might be empty because particles missed the wafers
// The hit container might be empty because particles missed the wafers
if (h_siHits->size() == 0) return StatusCode::SUCCESS;
//if (h_siHits->size() == 0) return StatusCode::SUCCESS;
// Loop over all hits; print and fill histogram
if (h_siHits->size()!=0){
for (const FaserSiHit& hit : *h_siHits)
// Loop over all hits; print and fill histogram
{
for (const FaserSiHit& hit : *h_siHits)
hit.print();
m_hist->Fill( hit.energyLoss() );
m_module->Fill( hit.getModule(), hit.getRow() );
if (hit.getSensor() == 0)
{
{
m_moduleSide1->Fill( hit.getModule(), hit.getRow());
hit.print();
 
m_hist->Fill( hit.energyLoss() );
 
m_module->Fill( hit.getModule(), hit.getRow() );
 
if (hit.getSensor() == 0)
 
{
 
m_moduleSide1->Fill( hit.getModule(), hit.getRow());
 
}
 
else
 
{
 
m_moduleSide2->Fill( hit.getModule(), hit.getRow());
 
}
 
}
}
else
}
 
 
if (h_preshowerHits->size()!=0){
 
for (const ScintHit& hit : *h_preshowerHits)
{
{
m_moduleSide2->Fill( hit.getModule(), hit.getRow());
hit.print();
 
m_hist->Fill(hit.energyLoss());
 
m_plate_preshower->Fill(hit.getStation(),hit.getPlate(),hit.energyLoss());
 
}
}
 
}
 
if (h_triggerHits->size()!=0){
 
for (const ScintHit& hit : *h_triggerHits)
 
{
 
hit.print();
 
m_hist->Fill(hit.energyLoss());
 
m_plate_trigger->Fill(hit.getStation(),hit.getPlate(),hit.energyLoss());
 
 
}
}
}
 
if (h_vetoHits->size()!=0){
 
for (const ScintHit& hit : *h_vetoHits)
 
{
 
hit.print();
 
m_hist->Fill(hit.energyLoss());
 
m_plate_veto->Fill(hit.getStation(),hit.getPlate(),hit.energyLoss());
 
 
}
 
}
 
 
return StatusCode::SUCCESS;
return StatusCode::SUCCESS;
}
}
Loading