Skip to content
Snippets Groups Projects
Commit b63f7666 authored by John Chapman's avatar John Chapman
Browse files

Correctly set the sampling for E4' chambers in ISF_Analysis (ATLASSIM-3601)

It was observed that some Tile Identifiers were returning sampling(layer) values
of 23 (which corresponded to an FCAL layer) this was causing problems in the
FastCaloSim V2 parameterization. Experts confirmed that the E4' Identifiers do not
fit with the usual Tile Identifier scheme and as such the sampling should be
hard-coded as `TileGap3` for such Identifiers. This should fix ATLASSIM-3601.


Former-commit-id: ffa67cf81f7a693062dbe15a9c13952b8fa0732b
parent 9641bf94
No related branches found
No related tags found
No related merge requests found
......@@ -887,16 +887,24 @@ StatusCode ISF_HitAnalysis::execute()
larhec = true;
else if(m_larFcalID->is_lar_fcal(id))
larfcal = true;
else if(m_tileID->is_tile_barrel(id) || m_tileID->is_tile_extbarrel(id) || m_tileID->is_tile_gap(id) || m_tileID->is_tile_gapscin(id) || m_tileID->is_tile_aux(id))
else if (m_tileID->is_tile_aux(id)) {
// special case for E4'
tile = true;
cell_id = m_tileID->cell_id(id);
sampling = CaloCell_ID::TileGap3;
sampfrac = m_tileInfo->HitCalib(id);
}
else if(m_tileID->is_tile_barrel(id) || m_tileID->is_tile_extbarrel(id) || m_tileID->is_tile_gap(id))
{
// all other Tile cells
tile = true;
cell_id = m_tileID->cell_id(id);
Int_t tile_sampling = -1;
if(m_calo_dd_man->get_element(cell_id))
{
tile_sampling = m_calo_dd_man->get_element(cell_id)->getSampling();
sampfrac = m_tileInfo->HitCalib(cell_id);
tile_sampling = m_calo_dd_man->get_element(cell_id)->getSampling();
sampfrac = m_tileInfo->HitCalib(cell_id);
}
tile = true;
if(tile_sampling!= -1)
sampling = tile_sampling; //m_calo_dd_man needs to be called with cell_id not pmt_id!!
}
......@@ -1104,8 +1112,13 @@ StatusCode ISF_HitAnalysis::execute()
{
m_cell_energy->push_back((*itrCell)->energy());
m_cell_identifier->push_back((*itrCell)->ID().get_compact());
if (m_calo_dd_man->get_element((*itrCell)->ID()))
if (m_tileID->is_tile_aux((*itrCell)->ID())) {
// special case for E4'
m_cell_sampling->push_back(CaloCell_ID::TileGap3);
}
else if (m_calo_dd_man->get_element((*itrCell)->ID()))
{
// all other Tile cells
CaloCell_ID::CaloSample layer = m_calo_dd_man->get_element((*itrCell)->ID())->getSampling();
m_cell_sampling->push_back(layer);
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment