diff --git a/Trigger/TrigAlgorithms/TrigCaloRec/src/HLTCaloCellMaker.cxx b/Trigger/TrigAlgorithms/TrigCaloRec/src/HLTCaloCellMaker.cxx index eb8c91fb0e97321c433bb432f02d8c57f91cb81e..c97d623c8de26ac90459b40a50bd84f0563f56e0 100644 --- a/Trigger/TrigAlgorithms/TrigCaloRec/src/HLTCaloCellMaker.cxx +++ b/Trigger/TrigAlgorithms/TrigCaloRec/src/HLTCaloCellMaker.cxx @@ -2,7 +2,7 @@ * Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration * */ - /* +/* * NAME: HLTCaloCellMaker.cxx * PACKAGE: Trigger/TrigDataAccess/TrigCaloDataAccessSvc * @@ -20,11 +20,11 @@ HLTCaloCellMaker::HLTCaloCellMaker(const std::string & name, ISvcLocator* pSvcLo m_dataAccessSvc( "TrigCaloDataAccessSvc/TrigCaloDataAccessSvc", name ), m_roiMode(true) { - declareProperty("RoIs", m_roiCollectionKey = std::string("OutputRoIs"), "RoIs to read in"); - declareProperty("CellsVName", m_cellContainerVKey = std::string("CellsVClusters"), "Calo cells container"); - declareProperty("CellsName", m_cellContainerKey = std::string("CellsClusters"), "Calo cells container"); - declareProperty("TrigDataAccessMT",m_dataAccessSvc,"Data Access for LVL2 Calo Algorithms in MT"); - declareProperty("roiMode",m_roiMode,"RoiMode roi->CaloCellCollection"); + declareProperty("RoIs", m_roiCollectionKey = std::string("OutputRoIs"), "RoIs to read in"); + declareProperty("CellsVName", m_cellContainerVKey = std::string("CellsVClusters"), "Calo cells container"); + declareProperty("CellsName", m_cellContainerKey = std::string("CellsClusters"), "Calo cells container"); + declareProperty("TrigDataAccessMT",m_dataAccessSvc,"Data Access for LVL2 Calo Algorithms in MT"); + declareProperty("roiMode",m_roiMode,"RoiMode roi->CaloCellCollection"); } HLTCaloCellMaker::~HLTCaloCellMaker() @@ -32,13 +32,13 @@ HLTCaloCellMaker::~HLTCaloCellMaker() } StatusCode HLTCaloCellMaker::initialize() { - ATH_CHECK( m_roiCollectionKey.initialize() ); - if ( m_roiMode ) - ATH_CHECK( m_cellContainerKey.initialize() ); - else - ATH_CHECK( m_cellContainerVKey.initialize() ); - CHECK( m_dataAccessSvc.retrieve() ); - return StatusCode::SUCCESS; + ATH_CHECK( m_roiCollectionKey.initialize() ); + if ( m_roiMode ) + ATH_CHECK( m_cellContainerKey.initialize() ); + else + ATH_CHECK( m_cellContainerVKey.initialize() ); + CHECK( m_dataAccessSvc.retrieve() ); + return StatusCode::SUCCESS; } StatusCode HLTCaloCellMaker::execute_r( const EventContext& context ) const { @@ -49,43 +49,43 @@ StatusCode HLTCaloCellMaker::execute_r( const EventContext& context ) const { // datahandle if ( m_roiMode ) { - if ( roiCollection->size() > 1 ) - ATH_MSG_INFO ( "roiMode but multiple rois found, will only use the first one"); - SG::WriteHandle<ConstDataVector<CaloCellContainer> > cellContainer = SG::WriteHandle<ConstDataVector<CaloCellContainer> > ( m_cellContainerKey, context ); - auto cdv = CxxUtils::make_unique<ConstDataVector<CaloCellContainer> >(SG::VIEW_ELEMENTS); - for( const TrigRoiDescriptor* roiDescriptor : *roiCollection) { - if ( roiDescriptor->isFullscan() ) { - m_dataAccessSvc->loadFullCollections( context, *cdv ); + if ( roiCollection->size() > 1 ) + ATH_MSG_INFO ( "roiMode but multiple rois found, will only use the first one"); + SG::WriteHandle<ConstDataVector<CaloCellContainer> > cellContainer = SG::WriteHandle<ConstDataVector<CaloCellContainer> > ( m_cellContainerKey, context ); + auto cdv = CxxUtils::make_unique<ConstDataVector<CaloCellContainer> >(SG::VIEW_ELEMENTS); + for( const TrigRoiDescriptor* roiDescriptor : *roiCollection) { + if ( roiDescriptor->isFullscan() ) { + m_dataAccessSvc->loadFullCollections( context, *cdv ); - } else { - LArTT_Selector<LArCellCont> sel; - m_dataAccessSvc->loadCollections( context, *roiDescriptor, TTEM, 2, sel ); - for( const auto cell : sel ) {cdv->push_back( cell ); } - } - auto ss = cellContainer.record( std::move(cdv) ); - ATH_CHECK( ss ); - return StatusCode::SUCCESS; - } + } else { + LArTT_Selector<LArCellCont> sel; + m_dataAccessSvc->loadCollections( context, *roiDescriptor, TTEM, 2, sel ); + for( const auto cell : sel ) {cdv->push_back( cell ); } + } + auto ss = cellContainer.record( std::move(cdv) ); + ATH_CHECK( ss ); + return StatusCode::SUCCESS; + } } else { - SG::WriteHandle<ConstDataVector<CaloCellContainerVector> > cellContainerV( m_cellContainerVKey, context ); - auto cdv = CxxUtils::make_unique<ConstDataVector<CaloCellContainerVector> >(); - ATH_CHECK( cellContainerV.record( std::move(cdv) ) ); - for( const TrigRoiDescriptor* roiDescriptor : *roiCollection) { - if ( roiDescriptor->isFullscan() ) { - auto c = std::make_unique<ConstDataVector<CaloCellContainer> >(SG::VIEW_ELEMENTS); - m_dataAccessSvc->loadFullCollections( context, *c ); - cellContainerV->push_back( c.release()->asDataVector() ); + SG::WriteHandle<ConstDataVector<CaloCellContainerVector> > cellContainerV( m_cellContainerVKey, context ); + auto cdv = CxxUtils::make_unique<ConstDataVector<CaloCellContainerVector> >(); + ATH_CHECK( cellContainerV.record( std::move(cdv) ) ); + for( const TrigRoiDescriptor* roiDescriptor : *roiCollection) { + if ( roiDescriptor->isFullscan() ) { + auto c = std::make_unique<ConstDataVector<CaloCellContainer> >(SG::VIEW_ELEMENTS); + m_dataAccessSvc->loadFullCollections( context, *c ); + cellContainerV->push_back( c.release()->asDataVector() ); - } else { - LArTT_Selector<LArCellCont> sel; - m_dataAccessSvc->loadCollections( context, *roiDescriptor, TTEM, 2, sel ); - auto c = std::make_unique<ConstDataVector<CaloCellContainer> >(SG::VIEW_ELEMENTS); - int cc(0); - for( const auto cell : sel ) {c->push_back( cell ); cc++;} - cellContainerV->push_back( c.release()->asDataVector() ); - } - } + } else { + LArTT_Selector<LArCellCont> sel; + m_dataAccessSvc->loadCollections( context, *roiDescriptor, TTEM, 2, sel ); + auto c = std::make_unique<ConstDataVector<CaloCellContainer> >(SG::VIEW_ELEMENTS); + int cc(0); + for( const auto cell : sel ) {c->push_back( cell ); cc++;} + cellContainerV->push_back( c.release()->asDataVector() ); + } + } } diff --git a/Trigger/TrigAlgorithms/TrigEFMissingET/share/testMET.py b/Trigger/TrigAlgorithms/TrigEFMissingET/share/testMET.py index 5af3f2c6c36c48e1f5acb8bf7c5693d64d960ca8..9a395cf96f632c4571b9e811d1dd65e333666e47 100644 --- a/Trigger/TrigAlgorithms/TrigEFMissingET/share/testMET.py +++ b/Trigger/TrigAlgorithms/TrigEFMissingET/share/testMET.py @@ -7,12 +7,6 @@ include("TrigUpgradeTest/testHLT_MT.py") from AthenaCommon.AlgSequence import AlgSequence topSequence = AlgSequence() -isData = False -if globalflags.InputFormat.is_bytestream(): - isData = True - - - import math from TrigT2CaloCommon.TrigT2CaloCommonConf import TrigCaloDataAccessSvc#, TestCaloDataAccess from AthenaMonitoring.GenericMonitoringTool import GenericMonitoringTool, defineHistogram @@ -27,9 +21,13 @@ svcMgr += TrigCaloDataAccessSvc() svcMgr.TrigCaloDataAccessSvc.MonTool = mon svcMgr.TrigCaloDataAccessSvc.OutputLevel=INFO +from L1Decoder.L1DecoderConf import CreateFullScanRoI +topSequence += CreateFullScanRoI() + from TrigCaloRec.TrigCaloRecConf import HLTCaloCellMaker cellMakerAlgo = HLTCaloCellMaker("CellMakerMT", roiMode=True) -cellMakerAlgo.RoIs="METRoIs" +cellMakerAlgo.RoIs="FullScanRoIs" + cellMakerAlgo.OutputLevel=VERBOSE cellMakerAlgo.CellsName="cells" topSequence += cellMakerAlgo @@ -37,13 +35,27 @@ topSequence += cellMakerAlgo from TrigEFMissingET.TrigEFMissingETConf import EFMissingETAlgMT, EFMissingETFromCellsMT -# cellTool = EFMissingETFromCellsMT( name="METFromCellsTool", CaloNoiseTool=ToolSvc.CaloNoiseToolDefault ) -# cellTool.CellsCollection = "cells" +cellTool = EFMissingETFromCellsMT( name="METFromCellsTool" ) +cellTool.CellsCollection = "cells" + +metAlg = EFMissingETAlgMT( name="EFMET" ) + + +metAlg.METTools=[ cellTool ] +#metAlg.OutputLevel=DEBUG +metMon = GenericMonitoringTool("METMonTool") +metMon.Histograms = [ defineHistogram( "TIME_Total", title="Time spent Alg", xbins=100, xmin=0, xmax=100 ), + defineHistogram( "TIME_Loop", title="Time spent in Tools loop", xbins=100, xmin=0, xmax=100 )] +from TrigEFMissingET.TrigEFMissingETMonitoring import * +metMon.Histograms = [ hEx_log, hEy_log, hEz_log, hMET_log, hSumEt_log ] +metMon.Histograms += [ hMET_lin, hSumEt_lin ] +metMon.Histograms += [ hXS, hMETPhi, hMETStatus] +metMon.Histograms += [ hCompEx, hCompEy, hCompEz, hCompEt, hCompSumEt, hCompSumE ] +metMon.Histograms += [ hCompEt_lin, hCompSumEt_lin ] -# metAlg = EFMissingETAlgMT( name="EFMET" ) -# metAlg.METTools=[ cellTool ] -# metAlg += cellTool -# topSequence += metAlg +metAlg.MonTool = metMon +#metAlg += cellTool +topSequence += metAlg # from TrigCaloRec.TrigCaloRecConfig import TrigCaloClusterMakerMT_topo diff --git a/Trigger/TrigAlgorithms/TrigEFMissingET/src/EFMissingETAlgMT.cxx b/Trigger/TrigAlgorithms/TrigEFMissingET/src/EFMissingETAlgMT.cxx index c112085c3e34a1732101841d83ce427dd961a021..df39c0b71f07a6c08ca3305fc94e9a9d38a8a0aa 100644 --- a/Trigger/TrigAlgorithms/TrigEFMissingET/src/EFMissingETAlgMT.cxx +++ b/Trigger/TrigAlgorithms/TrigEFMissingET/src/EFMissingETAlgMT.cxx @@ -43,8 +43,8 @@ double toLinGeV( double x, double fallback = 0, double epsilon = 1e-6 ) { StatusCode EFMissingETAlgMT::execute_r( const EventContext& context ) const { ATH_MSG_DEBUG ( "Executing " << name() << "..." ); using namespace Monitored; - auto totalTimer = MonitoredTimer::declare( "Total" ); - auto loopTimer = MonitoredTimer::declare( "Loop" ); + auto totalTimer = MonitoredTimer::declare( "TIME_Total" ); + auto loopTimer = MonitoredTimer::declare( "TIME_Loop" ); auto metContainer = std::make_unique<xAOD::TrigMissingETContainer>(); auto metAuxContainer = std::make_unique<xAOD::TrigMissingETAuxContainer>(); diff --git a/Trigger/TrigAlgorithms/TrigEFMissingET/src/EFMissingETFromCellsMT.cxx b/Trigger/TrigAlgorithms/TrigEFMissingET/src/EFMissingETFromCellsMT.cxx index b6b0b9413d9fa3fe58b0bf916b6a6b9e9a24dd6f..3a38c6d6bfd8249d7f38c70863a0b8a1951a41ff 100644 --- a/Trigger/TrigAlgorithms/TrigEFMissingET/src/EFMissingETFromCellsMT.cxx +++ b/Trigger/TrigAlgorithms/TrigEFMissingET/src/EFMissingETFromCellsMT.cxx @@ -24,7 +24,8 @@ StatusCode EFMissingETFromCellsMT::initialize() m_maxThreshold = m_rmsOneSided; if ( m_rmsOneSided < fabsf( m_rmsTwoSided ) ) m_maxThreshold = fabsf( m_rmsTwoSided ); - CHECK( m_noiseTool.retrieve() ); + + //CHECK( m_noiseTool.retrieve() ); return StatusCode::SUCCESS; } @@ -32,11 +33,11 @@ StatusCode EFMissingETFromCellsMT::initialize() StatusCode EFMissingETFromCellsMT::update( xAOD::TrigMissingET */*met*/, TrigEFMissingEtHelper *metHelper ) const { using namespace Monitored; - auto totalTimer = MonitoredTimer::declare( "Total" ); + auto totalTimer = MonitoredTimer::declare( "TIME_Total" ); const EventContext context{ Gaudi::Hive::currentContext() }; auto caloCellsHandle = SG::makeHandle( m_cellsKey ); - auto loopTimer = MonitoredTimer::declare( "Loop" ); + auto loopTimer = MonitoredTimer::declare( "TIME_Loop" ); auto countUsedCells = MonitoredScalar::declare<unsigned>( "UsedCells", 0 ); // now it is time to iterate over the cells @@ -56,11 +57,11 @@ StatusCode EFMissingETFromCellsMT::update( xAOD::TrigMissingET */*met*/, //TB not sure about skipping logic, looks incorrect in the original code // - if ( m_noiseTool ) { // == noise suppression required - const bool noiseCutPassed = true; // noiseCut( cell ); - if ( not noiseCutPassed ) - continue; - } + // if ( m_noiseTool ) { // == noise suppression required + // const bool noiseCutPassed = true; // noiseCut( cell ); + // if ( not noiseCutPassed ) + // continue; + // } countUsedCells = countUsedCells + 1; @@ -84,9 +85,9 @@ StatusCode EFMissingETFromCellsMT::update( xAOD::TrigMissingET */*met*/, if ( not m_makeRobustness) continue; if ( not m_doCellNoiseSupp || (m_doCellNoiseSupp && m_MinCellSNratio[cDDE->getSampling()] > m_maxThreshold)) { - if (fabs(E) < m_MinCellSNratio[cDDE->getSampling()] * - m_noiseTool->getNoise( cell, ICalorimeterNoiseTool::TOTALNOISE)) - continue; + // if (fabs(E) < m_MinCellSNratio[cDDE->getSampling()] * + // m_noiseTool->getNoise( cell, ICalorimeterNoiseTool::TOTALNOISE)) + continue; } float time = cell->time() * 1e-3; // ns diff --git a/Trigger/TrigAlgorithms/TrigEFMissingET/src/EFMissingETFromCellsMT.h b/Trigger/TrigAlgorithms/TrigEFMissingET/src/EFMissingETFromCellsMT.h index 89433a3b8909cc7d6c83641e1fde9e9a177a226e..18089672c45f43aeab2af03016f48cee5cd823a3 100644 --- a/Trigger/TrigAlgorithms/TrigEFMissingET/src/EFMissingETFromCellsMT.h +++ b/Trigger/TrigAlgorithms/TrigEFMissingET/src/EFMissingETFromCellsMT.h @@ -51,7 +51,7 @@ class EFMissingETFromCellsMT: public extends<AthAlgTool, IMissingETTool> { SG::ReadHandleKey<CaloCellContainer> m_cellsKey { this, "CellsCollection", "CaloCells", "Collection containg all cels" }; - PublicToolHandle<ICalorimeterNoiseTool> m_noiseTool { this, "CaloNoiseTool", "CaloNoiseTool/CaloNoiseToolDefault", "Tool Handle for noise tool" }; + //PublicToolHandle<ICalorimeterNoiseTool> m_noiseTool { this, "CaloNoiseTool", "CaloNoiseTool/CaloNoiseToolDefault", "Tool Handle for noise tool" }; };