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

Merge branch '21.3' into '21.3'

update with comments to improve resource management when running JGTowerMaker

See merge request atlas/athena!20693
parents df16fca9 a785cb77
No related branches found
No related tags found
No related merge requests found
......@@ -44,5 +44,7 @@
#include "xAODTrigL1Calo/L1TopoRawDataContainer.h"
#include "xAODTrigL1Calo/RODHeaderAuxContainer.h"
#include "xAODTrigL1Calo/RODHeaderContainer.h"
#include "xAODTrigL1Calo/JGTowerAuxContainer.h"
#include "xAODTrigL1Calo/JGTowerContainer.h"
#include "xAODTrigL1Calo/TriggerTowerAuxContainer.h"
#include "xAODTrigL1Calo/TriggerTowerContainer.h"
......@@ -36,6 +36,7 @@ if ( "streamAOD" in dir() ):
StreamAOD.ItemList+=["JGTowerAuxContainer#JTowerAux.*"] # This might need to be controlled later to avoid increase of AOD size
StreamAOD.ItemList+=["JGTowerContainer#GTower"] # This might need to be controlled later to avoid increase of AOD size
StreamAOD.ItemList+=["JGTowerAuxContainer#GTowerAux.*"] # This might need to be controlled later to avoid increase of AOD size
# StreamAOD.TakeItemsFromInput = True
#topSequence.remove(streamAOD)
topSequence += StreamAOD
......
......@@ -33,7 +33,6 @@ JGTowerMaker::JGTowerMaker( const std::string& name, ISvcLocator* pSvcLocator )
JGTowerMaker::~JGTowerMaker() {
jT.clear();
gT.clear();
}
......@@ -68,19 +67,25 @@ StatusCode JGTowerMaker::FexAlg(std::vector<JGTower*> jgT, xAOD::JGTowerContaine
const CaloCellContainer* scells = 0;
CHECK( evtStore()->retrieve( scells, m_scType.data()) );
const CaloCellContainer* cells = 0;
CHECK( evtStore()->retrieve( cells, "AllCalo") );
const xAOD::TriggerTowerContainer* TTs;
if(evtStore()->retrieve(TTs,"xAODTriggerTowers").isFailure() ) {
ATH_MSG_INFO("ERROR loading trigger tower");
return StatusCode::FAILURE;
}
for (unsigned hs=0;hs<jgT.size();++hs){
xAOD::JGTower* m_trigTower = new xAOD::JGTower();
jgTContainer->push_back(m_trigTower);
JGTower*jgt = jgT.at(hs);
m_trigTower->initialize(hs,jgt->Eta(),jgt->Phi());
float jgEt=0;
float lar_et=0;
float tile_et=0;
std::vector<int> jgTowerTileIndex = jgt->GetTileIndices();
std::vector<int> jgTowerSCIndex = jgt->GetSCIndices();
//Filling tower energy with SC
for(unsigned i=0; i<jgTowerSCIndex.size(); i++){
......@@ -92,10 +97,9 @@ StatusCode JGTowerMaker::FexAlg(std::vector<JGTower*> jgT, xAOD::JGTowerContaine
jgEt += scell_et;
lar_et+=scell_et;
}
if(jgt->sampling()==1){
if(m_useAllCalo){
const CaloCellContainer* cells = 0;
CHECK( evtStore()->retrieve( cells, "AllCalo") );
for(unsigned cell_hs=0 ; cell_hs<jgTowerTileIndex.size(); cell_hs++){
const CaloCell * cell = cells->findCell(jgTowerTileIndex.at(cell_hs));
jgEt+=cell->e()*cell->sinTh();
......@@ -104,11 +108,6 @@ StatusCode JGTowerMaker::FexAlg(std::vector<JGTower*> jgT, xAOD::JGTowerContaine
}
else{
const xAOD::TriggerTowerContainer* TTs;
if(evtStore()->retrieve(TTs,"xAODTriggerTowers").isFailure() ) {
ATH_MSG_INFO("ERROR loading trigger tower");
return StatusCode::FAILURE;
}
for(unsigned tt_hs=0 ; tt_hs<TTs->size(); tt_hs++){
const xAOD::TriggerTower * tt = TTs->at(tt_hs);
......@@ -121,6 +120,10 @@ StatusCode JGTowerMaker::FexAlg(std::vector<JGTower*> jgT, xAOD::JGTowerContaine
}
}
if(jgEt == 0) continue;
xAOD::JGTower* m_trigTower = new xAOD::JGTower();
jgTContainer->push_back(m_trigTower);
m_trigTower->initialize(hs,jgt->Eta(),jgt->Phi());
m_trigTower->setdEta(jgt->dEta());
m_trigTower->setdPhi(jgt->dPhi());
m_trigTower->setEt(jgEt);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment