diff --git a/Calorimeter/CaloCondPhysAlgs/CMakeLists.txt b/Calorimeter/CaloCondPhysAlgs/CMakeLists.txt index 6ffbc0f566b79e440adba61dddbbff78a81e08d6..d6238ea04d7d2447c40ab6e78b7afbc335cda88d 100644 --- a/Calorimeter/CaloCondPhysAlgs/CMakeLists.txt +++ b/Calorimeter/CaloCondPhysAlgs/CMakeLists.txt @@ -26,7 +26,6 @@ atlas_depends_on_subdirs( PUBLIC Calorimeter/CaloUtils Database/AthenaPOOL/AthenaPoolUtilities DetectorDescription/Identifier - Event/EventInfo Event/xAOD/xAODEventInfo LArCalorimeter/LArGeoModel/LArHV LArCalorimeter/LArGeoModel/LArReadoutGeometry @@ -43,7 +42,7 @@ atlas_add_component( CaloCondPhysAlgs src/*.cxx src/components/*.cxx INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} ${COOL_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} ${CORAL_LIBRARIES} ${COOL_LIBRARIES} ${CLHEP_LIBRARIES} CaloCondBlobObjs CaloDetDescrLib CaloGeoHelpers CaloIdentifier AthenaBaseComps AthenaKernel StoreGateLib SGtests GaudiKernel LArCablingLib LArIdentifier TrigDecisionToolLib CaloConditions CaloEvent CaloUtilsLib AthenaPoolUtilities Identifier EventInfo xAODEventInfo LArHV LArReadoutGeometry LArSimEvent ) + LINK_LIBRARIES ${ROOT_LIBRARIES} ${CORAL_LIBRARIES} ${COOL_LIBRARIES} ${CLHEP_LIBRARIES} CaloCondBlobObjs CaloDetDescrLib CaloGeoHelpers CaloIdentifier AthenaBaseComps AthenaKernel StoreGateLib SGtests GaudiKernel LArCablingLib LArIdentifier TrigDecisionToolLib CaloConditions CaloEvent CaloUtilsLib AthenaPoolUtilities Identifier xAODEventInfo LArHV LArReadoutGeometry LArSimEvent ) # Install files from the package: atlas_install_python_modules( python/*.py ) diff --git a/Calorimeter/CaloCondPhysAlgs/src/LArMinBiasAlg.cxx b/Calorimeter/CaloCondPhysAlgs/src/LArMinBiasAlg.cxx index 9f2347e49cce9c1c510efd9617f3427f15fae6ad..c397d4c9e48c963b8dbc6cf16b1c17899da6c6de 100644 --- a/Calorimeter/CaloCondPhysAlgs/src/LArMinBiasAlg.cxx +++ b/Calorimeter/CaloCondPhysAlgs/src/LArMinBiasAlg.cxx @@ -4,11 +4,6 @@ #include "LArMinBiasAlg.h" -#include "EventInfo/EventID.h" -#include "EventInfo/EventInfo.h" -#include "EventInfo/EventType.h" -#include "EventInfo/PileUpEventInfo.h" - #include "CaloEvent/CaloCell.h" #include "CaloEvent/CaloCellContainer.h" @@ -83,6 +78,8 @@ ATH_CHECK(m_cablingKey.initialize()); + ATH_CHECK(m_eventInfoKey.initialize()); + m_n1=0; m_n2=0; @@ -94,15 +91,15 @@ //__________________________________________________________________________ StatusCode LArMinBiasAlg::stop() { - std::cout << "number of events in the two samples " << m_n1 << " " << m_n2 << std::endl; + ATH_MSG_INFO("number of events in the two samples " << m_n1 << " " << m_n2); this->fillNtuple(); - std::cout <<" stop after fill ntuple " << std::endl; + ATH_MSG_INFO(" stop after fill ntuple"); return StatusCode::SUCCESS; } //__________________________________________________________________________ StatusCode LArMinBiasAlg::finalize() { - std::cout << " finalize() " << std::endl; + ATH_MSG_INFO(" finalize()"); return StatusCode::SUCCESS; } @@ -124,7 +121,7 @@ m_ncell = m_calo_id->calo_cell_hash_max(); - std::cout << " --- first event " << m_ncell << std::endl; + ATH_MSG_INFO(" --- first event " << m_ncell); m_symCellIndex.resize(m_ncell,-1); std::vector<int> doneCell; doneCell.resize(m_ncell,-1); @@ -173,16 +170,18 @@ nsym++; } } - std::cout << " --- number of symmetric cells found " << nsym << " " << m_CellList.size() << std::endl; + ATH_MSG_INFO(" --- number of symmetric cells found " << nsym << " " << m_CellList.size()); if (nsym>=MAX_SYM_CELLS) ATH_MSG_ERROR(" More than allowed number of symmetric cells... Fix array size for ntuple writing !!!! "); m_nsymcell=nsym; m_first=false; } - - const EventInfo* eventInfo; - ATH_CHECK (evtStore()->retrieve(eventInfo)); - int channelNumber = eventInfo->event_type()->mc_channel_number() ; + SG::ReadHandle<xAOD::EventInfo> eventInfo(m_eventInfoKey); + if (!eventInfo.isValid()) { + ATH_MSG_ERROR ("Could not retrieve EventInfo"); + return StatusCode::FAILURE; + } + int channelNumber = eventInfo->mcChannelNumber(); m_nevt_total++; @@ -204,7 +203,7 @@ } - if ((m_nevt_total%100)==1) std::cout << " ---- process event number " << m_nevt_total << " " << channelNumber << " weight " << weight << std::endl; + if ((m_nevt_total%100)==1) ATH_MSG_INFO(" ---- process event number " << m_nevt_total << " " << channelNumber << " weight " << weight); for (int i=0;i<m_ncell;i++) m_eCell[i]=0.; @@ -249,7 +248,7 @@ int index2= m_symCellIndex[index]; if (index2<0) return; if (index2 >= ((int)(m_CellList.size())) ) { - std::cout << " problem " << index << " " << index2 << " " << m_CellList.size() << std::endl; + ATH_MSG_INFO(" problem " << index << " " << index2 << " " << m_CellList.size()); } double oldN = m_CellList[index2].nevt; double oldAverage = m_CellList[index2].average; @@ -275,7 +274,7 @@ void LArMinBiasAlg::fillNtuple() { - std::cout << " in fillNtuple " << m_nsymcell << std::endl; + ATH_MSG_INFO(" in fillNtuple " << m_nsymcell); for (int i=0;i<m_nsymcell;i++) { m_identifier[i] = m_CellList[i].identifier.get_identifier32().get_compact(); m_layer[i] = m_CellList[i].layer; @@ -289,14 +288,14 @@ m_rms[i] = (float) (sqrt(m_CellList[i].rms)); } m_tree->Fill(); - std::cout << " after tree fill " << std::endl; + ATH_MSG_INFO(" after tree fill "); - for (int i=0;i<m_nsymcell;i++) { + for (int i=0;i<m_nsymcell;i++) { m_CellList[i].nevt=0; m_CellList[i].offset=0.; m_CellList[i].average=0; m_CellList[i].rms=0; } - std::cout << " end of fillNtuple " << std::endl; + ATH_MSG_INFO(" end of fillNtuple "); } diff --git a/Calorimeter/CaloCondPhysAlgs/src/LArMinBiasAlg.h b/Calorimeter/CaloCondPhysAlgs/src/LArMinBiasAlg.h index f9289b9223d6b143edfbcbe760d70501cb788271..78616877c988b59b9ebcc6434d29a38b893e510a 100644 --- a/Calorimeter/CaloCondPhysAlgs/src/LArMinBiasAlg.h +++ b/Calorimeter/CaloCondPhysAlgs/src/LArMinBiasAlg.h @@ -15,6 +15,8 @@ #include "AthenaBaseComps/AthAlgorithm.h" #include "GaudiKernel/ToolHandle.h" #include "StoreGate/StoreGateSvc.h" +#include "StoreGate/ReadHandleKey.h" +#include "xAODEventInfo/EventInfo.h" #include "CaloIdentifier/CaloIdManager.h" #include "CaloIdentifier/LArID.h" @@ -104,6 +106,6 @@ std::vector<int> m_symCellIndex; float m_first; int m_ncell = 0; - + SG::ReadHandleKey<xAOD::EventInfo> m_eventInfoKey{this,"EvtInfo", "EventInfo", "EventInfo name"}; }; #endif diff --git a/Control/AthenaCommon/CMakeLists.txt b/Control/AthenaCommon/CMakeLists.txt index 46e7228164ef546e9f1ec64c04f84a98cbe0c7d5..ce8cb891584a680189ecfcd76b0d71beb2e6a05b 100644 --- a/Control/AthenaCommon/CMakeLists.txt +++ b/Control/AthenaCommon/CMakeLists.txt @@ -12,8 +12,10 @@ atlas_depends_on_subdirs( PRIVATE # Install files from the package: atlas_install_headers( AthenaCommon ) atlas_install_python_modules( python/*.py python/Utils ) -atlas_install_joboptions( share/Preparation.py share/Execution.py share/Atlas.UnixStandardJob.py test/*.py share/Atlas_Gen.UnixStandardJob.py share/MemTraceInclude.py share/runbatch.py ) +atlas_install_joboptions( share/Preparation.py share/Execution.py share/Atlas.UnixStandardJob.py test/*.py + share/zeroJO.py share/Atlas_Gen.UnixStandardJob.py share/MemTraceInclude.py share/runbatch.py) atlas_install_scripts( share/athena.py share/athena_preload.sh share/chappy.py share/find_cfg_dups.py share/test_cfg_pickling.py ) +atlas_install_runtime(share/*.pkl) # Aliases: atlas_add_alias( athena "athena.py" ) @@ -31,6 +33,12 @@ atlas_add_test( KeyStoreUnitTests SCRIPT test/test_KeyStoreUnitTests.sh atlas_add_test( CFElementsTest SCRIPT python -m unittest -v AthenaCommon.CFElements POST_EXEC_SCRIPT nopost.sh ) +atlas_add_test( GenerateBootstrapTest + SCRIPT test/test_gen_bootstrap.sh + #ignore location of bootstrap file and whether it was already downloaded + EXTRA_PATTERNS ".*copy bootstrap.*pkl|.*\/share\/bootstrap.*pkl|File.*exists in the current directory|^Willing to acquire" + ) + # Check python syntax: atlas_add_test( flake8 SCRIPT flake8 --select=F,E101,E112,E113,E7,E9,W6 --ignore=E701,E741 ${CMAKE_CURRENT_SOURCE_DIR}/python diff --git a/Control/AthenaConfiguration/share/GenerateBootstrapTest.ref b/Control/AthenaCommon/share/GenerateBootstrapTest.ref similarity index 100% rename from Control/AthenaConfiguration/share/GenerateBootstrapTest.ref rename to Control/AthenaCommon/share/GenerateBootstrapTest.ref diff --git a/Control/AthenaConfiguration/python/bootstrap.pkl b/Control/AthenaCommon/share/bootstrap.pkl similarity index 95% rename from Control/AthenaConfiguration/python/bootstrap.pkl rename to Control/AthenaCommon/share/bootstrap.pkl index b44cc47be44a0793473ae2eb10f77bc74b4dd7f2..4dad90511ccdac190b18fdf3733412da7261292a 100644 --- a/Control/AthenaConfiguration/python/bootstrap.pkl +++ b/Control/AthenaCommon/share/bootstrap.pkl @@ -185,7 +185,7 @@ S'[]' p97 sS'Members' p98 -S"['AthSequencer/AthAlgEvtSeq', 'AthSequencer/AthOutSeq']" +S"['AthSequencer/AthAlgEvtSeq']" p99 sS'NeededResources' p100 @@ -220,7 +220,7 @@ S'True' p115 sS'Members' p116 -S"['AthSequencer/AthFilterSeq', 'AthSequencer/AthRegSeq']" +S"['AthSequencer/AthFilterSeq', 'AthSequencer/AthOutSeq', 'AthSequencer/AthRegSeq']" p117 sS'NeededResources' p118 @@ -797,7 +797,7 @@ p112 g7 sS'SEARCHPATH' p113 -S'.:/afs/cern.ch/work/s/smh/idconfig_2/bld/x86_64-centos7-gcc8-opt/jobOptions:/cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-02-11T2137/GAUDI/22.0.1/InstallArea/x86_64-centos7-gcc8-opt/jobOptions:/afs/cern.ch/work/s/smh/idconfig_2/bld:/cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-02-11T2137/Athena/22.0.1/InstallArea/x86_64-centos7-gcc8-opt/jobOptions:/cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-02-11T2137/AthenaExternals/22.0.1/InstallArea/x86_64-centos7-gcc8-opt/jobOptions' +S'.:/cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-02-20T2138/Athena/22.0.1/InstallArea/x86_64-centos7-gcc8-opt/jobOptions:/cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-02-20T2138/AthenaExternals/22.0.1/InstallArea/x86_64-centos7-gcc8-opt/jobOptions:/cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-02-20T2138/GAUDI/22.0.1/InstallArea/x86_64-centos7-gcc8-opt/jobOptions' p114 sS'AuditInitialize' p115 diff --git a/Control/AthenaConfiguration/python/bootstrap_threaded.pkl b/Control/AthenaCommon/share/bootstrap_threaded.pkl similarity index 96% rename from Control/AthenaConfiguration/python/bootstrap_threaded.pkl rename to Control/AthenaCommon/share/bootstrap_threaded.pkl index 6ad9193f79cdd31ed3e5ab8b353dd7bd70cda2fa..8c0a42c81d0acdd45c5318ce11d32a2c3d3d5ba9 100644 --- a/Control/AthenaConfiguration/python/bootstrap_threaded.pkl +++ b/Control/AthenaCommon/share/bootstrap_threaded.pkl @@ -276,7 +276,7 @@ S'[]' p143 sS'Members' p144 -S"['AthSequencer/AthAlgEvtSeq', 'AthSequencer/AthOutSeq']" +S"['AthSequencer/AthAlgEvtSeq']" p145 sS'NeededResources' p146 @@ -311,7 +311,7 @@ S'True' p161 sS'Members' p162 -S"['AthSequencer/AthFilterSeq', 'AthSequencer/AthRegSeq']" +S"['AthSequencer/AthFilterSeq', 'AthSequencer/AthOutSeq', 'AthSequencer/AthRegSeq']" p163 sS'NeededResources' p164 @@ -902,7 +902,7 @@ p105 g7 sS'SEARCHPATH' p106 -S'.:/afs/cern.ch/work/s/smh/idconfig_2/bld/x86_64-centos7-gcc8-opt/jobOptions:/cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-02-11T2137/GAUDI/22.0.1/InstallArea/x86_64-centos7-gcc8-opt/jobOptions:/afs/cern.ch/work/s/smh/idconfig_2/bld:/cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-02-11T2137/Athena/22.0.1/InstallArea/x86_64-centos7-gcc8-opt/jobOptions:/cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-02-11T2137/AthenaExternals/22.0.1/InstallArea/x86_64-centos7-gcc8-opt/jobOptions' +S'.:/cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-02-20T2138/Athena/22.0.1/InstallArea/x86_64-centos7-gcc8-opt/jobOptions:/cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-02-20T2138/AthenaExternals/22.0.1/InstallArea/x86_64-centos7-gcc8-opt/jobOptions:/cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-02-20T2138/GAUDI/22.0.1/InstallArea/x86_64-centos7-gcc8-opt/jobOptions' p107 sS'AuditInitialize' p108 diff --git a/Control/AthenaConfiguration/share/zeroJO.py b/Control/AthenaCommon/share/zeroJO.py similarity index 100% rename from Control/AthenaConfiguration/share/zeroJO.py rename to Control/AthenaCommon/share/zeroJO.py diff --git a/Control/AthenaConfiguration/test/test_gen_bootstrap.sh b/Control/AthenaCommon/test/test_gen_bootstrap.sh similarity index 79% rename from Control/AthenaConfiguration/test/test_gen_bootstrap.sh rename to Control/AthenaCommon/test/test_gen_bootstrap.sh index 4a8b78d5f66212bb2ff03efea975ebd649d5d13b..3f39ccdde32c35509e7fcfa16bce092a83ed91c9 100755 --- a/Control/AthenaConfiguration/test/test_gen_bootstrap.sh +++ b/Control/AthenaCommon/test/test_gen_bootstrap.sh @@ -2,9 +2,9 @@ #Generate threaded and serial bootstrap pickles and diff them #If there's a major change in AthenaCommon or Gaudi it will get picked up here rm -f bootstrap*pkl -athena --config-only=bootstrap_test.pkl AthenaConfiguration/zeroJO.py &> /dev/null +athena --config-only=bootstrap_test.pkl AthenaCommon/zeroJO.py &> /dev/null get_files -remove -data bootstrap.pkl confTool.py --diff bootstrap.pkl bootstrap_test.pkl | grep -v identical -athena --threads=1 --config-only=bootstrap_threaded_test.pkl AthenaConfiguration/zeroJO.py &> /dev/null +athena --threads=1 --config-only=bootstrap_threaded_test.pkl AthenaCommon/zeroJO.py &> /dev/null get_files -remove -data bootstrap_threaded.pkl confTool.py --diff bootstrap_threaded.pkl bootstrap_threaded_test.pkl | grep -v identical diff --git a/Control/AthenaConfiguration/CMakeLists.txt b/Control/AthenaConfiguration/CMakeLists.txt index 3ce9208d39b22e5bb65c6dcda8df3ba7e1bed3a5..9f1ab05d497938c6a9f6c6c4f9ad97ec76fd7aea 100644 --- a/Control/AthenaConfiguration/CMakeLists.txt +++ b/Control/AthenaConfiguration/CMakeLists.txt @@ -10,9 +10,7 @@ atlas_subdir( AthenaConfiguration ) # Install files from the package: atlas_install_python_modules( python/*.py python/iconfTool ) -atlas_install_runtime(python/*.pkl ) atlas_install_scripts( share/confTool.py python/iconfTool/iconfTool ) -atlas_install_joboptions( share/zeroJO.py ) atlas_install_data( share/*.ref ) atlas_add_test( ComponentAccumulatorTest @@ -27,12 +25,6 @@ atlas_add_test( AthConfigFlagsTest SCRIPT python -m unittest AthenaConfiguration.AthConfigFlags POST_EXEC_SCRIPT nopost.sh ) -atlas_add_test( GenerateBootstrapTest - SCRIPT test/test_gen_bootstrap.sh - #ignore location of bootstrap file and whether it was already downloaded - EXTRA_PATTERNS ".*copy bootstrap.*pkl|.*\/share\/bootstrap.*pkl|File.*exists in the current directory|^Willing to acquire" - ) - if( NOT "${CMAKE_PROJECT_NAME}" STREQUAL "AthSimulation" ) atlas_add_test( AllConfigFlagsTest SCRIPT python -m AthenaConfiguration.AllConfigFlags diff --git a/Control/AthenaConfiguration/python/DetectorConfigFlags.py b/Control/AthenaConfiguration/python/DetectorConfigFlags.py index 81f33cdd8e5465e97d8edb2e588cfd02eff2adfd..2359b121385fc2d151939597aa2832aa314cb758 100644 --- a/Control/AthenaConfiguration/python/DetectorConfigFlags.py +++ b/Control/AthenaConfiguration/python/DetectorConfigFlags.py @@ -76,9 +76,10 @@ def createDetectorConfigFlags(): dcf.addFlag('Detector.SimulatePixel', False) dcf.addFlag('Detector.SimulateSCT', False) dcf.addFlag('Detector.SimulateTRT', False) # Set default according to prevFlags.GeoModel.Run? + dcf.addFlag('Detector.SimulateHGTD', False) dcf.addFlag('Detector.SimulateID', lambda prevFlags : (prevFlags.Detector.SimulateBCM or prevFlags.Detector.SimulateDBM or prevFlags.Detector.SimulatePixel or prevFlags.Detector.SimulateSCT or - prevFlags.Detector.SimulateTRT)) + prevFlags.Detector.SimulateTRT or prevFlags.Detector.SimulateHGTD)) dcf.addFlag('Detector.SimulateLAr', False) # Add separate em HEC and FCAL flags? dcf.addFlag('Detector.SimulateTile', False) dcf.addFlag('Detector.SimulateCalo', lambda prevFlags : (prevFlags.Detector.SimulateLAr or prevFlags.Detector.SimulateTile)) @@ -100,6 +101,7 @@ def createDetectorConfigFlags(): prevFlags.Detector.SimulateALFA or prevFlags.Detector.SimulateAFP or prevFlags.Detector.SimulateFwdRegion)) dcf.addFlag('Detector.SimulateCavern',False) + dcf.addFlag('Detector.Simulate', lambda prevFlags : (prevFlags.Detector.SimulateBpipe or prevFlags.Detector.SimulateID or prevFlags.Detector.SimulateCalo or prevFlags.Detector.SimulateMuon or prevFlags.Detector.SimulateForward or prevFlags.Detector.SimulateCavern)) diff --git a/Control/CxxUtils/CxxUtils/PackedArray.h b/Control/CxxUtils/CxxUtils/PackedArray.h index 0ecbc35f4a1659759e39c5b4de7beb893221b95c..a3a66f4fd920be798f601305f1b31605a2fddc6a 100644 --- a/Control/CxxUtils/CxxUtils/PackedArray.h +++ b/Control/CxxUtils/CxxUtils/PackedArray.h @@ -1,7 +1,7 @@ // This file's extension implies that it's C, but it's really -*- C++ -*-. /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ // $Id: PackedArray.h,v 1.2 2007-06-14 22:38:48 ssnyder Exp $ @@ -82,7 +82,7 @@ public: * the size of an unsigned int. * @param allocator Allocator for the underlying vector. */ - PackedArray (int bitsize, + PackedArray (int bitsize = 8, const allocator_type& allocator = allocator_type()); /** diff --git a/Database/IOVDbSvc/src/ReadFromFileMetaData.cxx b/Database/IOVDbSvc/src/ReadFromFileMetaData.cxx index 639185efe7f437463a72a3b1ed1caefdc81116f1..d6588dbbc443c903978db6fde7fee49759a54a05 100644 --- a/Database/IOVDbSvc/src/ReadFromFileMetaData.cxx +++ b/Database/IOVDbSvc/src/ReadFromFileMetaData.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #include "ReadFromFileMetaData.h" @@ -16,8 +16,7 @@ namespace IOVDbNamespace{ ReadFromFileMetaData::ReadFromFileMetaData( const IOVMetaDataContainer* container, const IOVTime & refTime, const bool useEpochTimestamp): m_metaContainer(container), - m_referenceTime(refTime), - m_isEpochTime(useEpochTimestamp){ + m_referenceTime(refTime){ m_payload = (container) ? (container->payloadContainer()) : (nullptr); if (m_payload){ IOVPayloadContainer::const_iterator pitr=m_payload->find(m_referenceTime); diff --git a/Database/IOVDbSvc/src/ReadFromFileMetaData.h b/Database/IOVDbSvc/src/ReadFromFileMetaData.h index 5d794f5f753c3266cfd85887dba31696de60bfcc..f03510700904469da168bf7c9139236ce33593e3 100644 --- a/Database/IOVDbSvc/src/ReadFromFileMetaData.h +++ b/Database/IOVDbSvc/src/ReadFromFileMetaData.h @@ -47,7 +47,6 @@ namespace IOVDbNamespace{ const IOVMetaDataContainer* m_metaContainer{}; IOVTime m_referenceTime{}; const IOVPayloadContainer* m_payload{}; - bool m_isEpochTime{}; CondAttrListCollection * m_pptr{}; AthenaAttributeList * m_attrList{}; CondAttrListCollection * m_attrListColl{}; @@ -56,4 +55,4 @@ namespace IOVDbNamespace{ }; }//namespace -#endif \ No newline at end of file +#endif diff --git a/Database/PersistentDataModel/PersistentDataModel/AthenaAttributeList.h b/Database/PersistentDataModel/PersistentDataModel/AthenaAttributeList.h index 2a8a7b13c8827e2490670af3ccc690b996ebe758..a0a9d3f09ef80f1c9d0c6abc98759c8f00589579 100644 --- a/Database/PersistentDataModel/PersistentDataModel/AthenaAttributeList.h +++ b/Database/PersistentDataModel/PersistentDataModel/AthenaAttributeList.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ /** @@ -50,7 +50,7 @@ public: AthenaAttributeList(); /// Copy attribute lists. - AthenaAttributeList(const coral::AttributeList& rhs); + explicit AthenaAttributeList(const coral::AttributeList& rhs); /// Construct attribute list according to the specification. /// The link to the specification is kept internally. diff --git a/Event/ByteStreamCnvSvc/src/ByteStreamCnvSvc.cxx b/Event/ByteStreamCnvSvc/src/ByteStreamCnvSvc.cxx index b6b9feb7e0a1a8429dac21f53d8900d7dafe67a3..1717f26c348a6c395cb20f7369784cc37201de52 100644 --- a/Event/ByteStreamCnvSvc/src/ByteStreamCnvSvc.cxx +++ b/Event/ByteStreamCnvSvc/src/ByteStreamCnvSvc.cxx @@ -1,10 +1,11 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #include "ByteStreamCnvSvc/ByteStreamCnvSvc.h" #include "ByteStreamCnvSvc/ByteStreamOutputSvc.h" #include "ByteStreamCnvSvcBase/FullEventAssembler.h" +#include "ByteStreamCnvSvcBase/ByteStreamAddress.h" #include "StoreGate/StoreGate.h" #include "EventInfo/EventInfo.h" @@ -20,8 +21,8 @@ #include <algorithm> -/// External definitions -long ByteStream_StorageType=0x43; +/// External definitions (TODO: remove this once all "extern" references are removed) +long ByteStream_StorageType = ByteStreamAddress::storageType(); /// Standard constructor ByteStreamCnvSvc::ByteStreamCnvSvc(const std::string& name, ISvcLocator* pSvcLocator) diff --git a/Event/ByteStreamCnvSvcBase/ByteStreamCnvSvcBase/ByteStreamAddress.h b/Event/ByteStreamCnvSvcBase/ByteStreamCnvSvcBase/ByteStreamAddress.h index df1391acce458859416239af92430ddb5a916ab3..a95bd7cf4aa08d7b781d0ea78ab8c2f4f82597f5 100755 --- a/Event/ByteStreamCnvSvcBase/ByteStreamCnvSvcBase/ByteStreamAddress.h +++ b/Event/ByteStreamCnvSvcBase/ByteStreamCnvSvcBase/ByteStreamAddress.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #ifndef BYTESTREAMCNVSVCBASE_BYTESTREAMADDRESS_H @@ -47,6 +47,9 @@ public: // @brief get event id const EventContext& getEventContext() const; + // @brief storage type to be used by all bytestream converters + static constexpr long storageType() { return 0x43; } + private: // @brief it holds a vector of rob ids std::vector<uint32_t> m_robIDs; diff --git a/Event/xAOD/xAODBPhys/Root/BPhysHelper.cxx b/Event/xAOD/xAODBPhys/Root/BPhysHelper.cxx index 8add2398cebcaad6b617ebe77806b610e622a32b..77b7a1cba7c8270082ca1c1c70ad5504dc6aaa1f 100644 --- a/Event/xAOD/xAODBPhys/Root/BPhysHelper.cxx +++ b/Event/xAOD/xAODBPhys/Root/BPhysHelper.cxx @@ -32,7 +32,7 @@ typedef std::vector<MuonLink> MuonLinkVector; /*****************************************************************************/ #define GET_PV( name ) \ { \ - static SG::AuxElement::Accessor<VertexLink> pvLinkAcc(name); \ + static const SG::AuxElement::Accessor<VertexLink> pvLinkAcc(name); \ if(!pvLinkAcc.isAvailable(*m_b)) { \ return 0; \ } \ @@ -45,7 +45,7 @@ typedef std::vector<MuonLink> MuonLinkVector; /*****************************************************************************/ #define SET_PV( name, pv, vertexContainer ) \ { \ - static SG::AuxElement::Decorator<VertexLink> pvLinkDecor(name); \ + static const SG::AuxElement::Decorator<VertexLink> pvLinkDecor(name); \ VertexLink vertexLink; \ if(pv) { \ vertexLink.setElement(pv); \ @@ -58,28 +58,28 @@ typedef std::vector<MuonLink> MuonLinkVector; /*****************************************************************************/ #define GET_FLOAT(name) \ { \ - static SG::AuxElement::Accessor<float> floatAcc(name); \ + static const SG::AuxElement::Accessor<float> floatAcc(name); \ if(!floatAcc.isAvailable(*m_b)) return -9999999.; \ return floatAcc(*m_b); \ } /*****************************************************************************/ #define SET_FLOAT( name, val) \ { \ - static SG::AuxElement::Decorator<float> floatDec(name); \ + static const SG::AuxElement::Decorator<float> floatDec(name); \ floatDec(*m_b) = val; \ return true; \ } /*****************************************************************************/ #define GET_INT(name) \ { \ - static SG::AuxElement::Accessor<int> intAcc(name); \ + static const SG::AuxElement::Accessor<int> intAcc(name); \ if(!intAcc.isAvailable(*m_b)) return -9999999; \ return intAcc(*m_b); \ } /*****************************************************************************/ #define SET_INT( name, val) \ { \ - static SG::AuxElement::Decorator<int> intDec(name); \ + static const SG::AuxElement::Decorator<int> intDec(name); \ intDec(*m_b) = val; \ return true; \ } @@ -284,9 +284,9 @@ bool xAOD::BPhysHelper::setRefTrks(const std::vector<float>& px, m_cachedRefTracks.clear(); // create decorators - static SG::AuxElement::Decorator< std::vector<float> > refTrackPxDeco("RefTrackPx"); - static SG::AuxElement::Decorator< std::vector<float> > refTrackPyDeco("RefTrackPy"); - static SG::AuxElement::Decorator< std::vector<float> > refTrackPzDeco("RefTrackPz"); + static const SG::AuxElement::Decorator< std::vector<float> > refTrackPxDeco("RefTrackPx"); + static const SG::AuxElement::Decorator< std::vector<float> > refTrackPyDeco("RefTrackPy"); + static const SG::AuxElement::Decorator< std::vector<float> > refTrackPzDeco("RefTrackPz"); // store the elements: refTrackPxDeco(*m_b) = px; @@ -466,7 +466,7 @@ bool xAOD::BPhysHelper::setMuons(const std::vector<const xAOD::Muon*>& muons, m_cachedMuons.clear(); // Create muon links decorator - static SG::AuxElement::Decorator<MuonLinkVector> muonLinksDecor("MuonLinks"); + static const SG::AuxElement::Decorator<MuonLinkVector> muonLinksDecor("MuonLinks"); // create tmp vector of muon links MuonLinkVector muonLinks; @@ -548,7 +548,7 @@ bool xAOD::BPhysHelper::setPrecedingVertices(const std::vector<const xAOD::Verte m_cachedPrecedingVertices.clear(); // Create preceding vertex links decorator - static SG::AuxElement::Decorator<VertexLinkVector> precedingVertexLinksDecor("PrecedingVertexLinks"); + static const SG::AuxElement::Decorator<VertexLinkVector> precedingVertexLinksDecor("PrecedingVertexLinks"); // create tmp vector of preceding vertex links VertexLinkVector precedingVertexLinks; @@ -629,7 +629,7 @@ bool xAOD::BPhysHelper::setCascadeVertices(const std::vector<const xAOD::Vertex* m_cachedCascadeVertices.clear(); // Create cascade vertex links decorator - static SG::AuxElement::Decorator<VertexLinkVector> cascadeVertexLinksDecor("CascadeVertexLinks"); + static const SG::AuxElement::Decorator<VertexLinkVector> cascadeVertexLinksDecor("CascadeVertexLinks"); // create tmp vector of cascade vertex links VertexLinkVector cascadeVertexLinks; @@ -982,9 +982,9 @@ bool xAOD::BPhysHelper::cacheRefTracks() m_cachedRefTracks.clear(); // Create auxiliary branches accessors - static SG::AuxElement::Accessor< std::vector<float> > refTrackPxAcc("RefTrackPx"); - static SG::AuxElement::Accessor< std::vector<float> > refTrackPyAcc("RefTrackPy"); - static SG::AuxElement::Accessor< std::vector<float> > refTrackPzAcc("RefTrackPz"); + static const SG::AuxElement::Accessor< std::vector<float> > refTrackPxAcc("RefTrackPx"); + static const SG::AuxElement::Accessor< std::vector<float> > refTrackPyAcc("RefTrackPy"); + static const SG::AuxElement::Accessor< std::vector<float> > refTrackPzAcc("RefTrackPz"); // check if branches are available: if(!refTrackPxAcc.isAvailable(*m_b) || @@ -1026,7 +1026,7 @@ bool xAOD::BPhysHelper::cacheMuons() m_cachedMuons.clear(); // Create auxiliary branches accessors - static SG::AuxElement::Accessor<MuonLinkVector> muonLinksAcc("MuonLinks"); + static const SG::AuxElement::Accessor<MuonLinkVector> muonLinksAcc("MuonLinks"); // check if branch exists if(!muonLinksAcc.isAvailable(*m_b)) { @@ -1071,7 +1071,7 @@ bool xAOD::BPhysHelper::cachePrecedingVertices() m_cachedPrecedingVertices.clear(); // Create auxiliary branches accessors - static SG::AuxElement::Accessor<VertexLinkVector> precedingVertexLinksAcc("PrecedingVertexLinks"); + static const SG::AuxElement::Accessor<VertexLinkVector> precedingVertexLinksAcc("PrecedingVertexLinks"); // check if branch exists if(!precedingVertexLinksAcc.isAvailable(*m_b)) { @@ -1116,7 +1116,7 @@ bool xAOD::BPhysHelper::cacheCascadeVertices() m_cachedCascadeVertices.clear(); // Create auxiliary branches accessors - static SG::AuxElement::Accessor<VertexLinkVector> cascadeVertexLinksAcc("CascadeVertexLinks"); + static const SG::AuxElement::Accessor<VertexLinkVector> cascadeVertexLinksAcc("CascadeVertexLinks"); // check if branch exists if(!cascadeVertexLinksAcc.isAvailable(*m_b)) { diff --git a/Event/xAOD/xAODBPhys/xAODBPhys/ATLAS_CHECK_THREAD_SAFETY b/Event/xAOD/xAODBPhys/xAODBPhys/ATLAS_CHECK_THREAD_SAFETY new file mode 100644 index 0000000000000000000000000000000000000000..76a491e9f118a3ec04656ab100f3581a08ceb3f5 --- /dev/null +++ b/Event/xAOD/xAODBPhys/xAODBPhys/ATLAS_CHECK_THREAD_SAFETY @@ -0,0 +1 @@ +Event/xAOD/xAODBPhys diff --git a/Event/xAOD/xAODBTagging/CMakeLists.txt b/Event/xAOD/xAODBTagging/CMakeLists.txt index 7716fad847c1e4243d94d3e9b7e8d22e3c7114cd..4e166259db4799962bf4d5ba73784c51462a906f 100644 --- a/Event/xAOD/xAODBTagging/CMakeLists.txt +++ b/Event/xAOD/xAODBTagging/CMakeLists.txt @@ -13,13 +13,14 @@ atlas_depends_on_subdirs( Event/xAOD/xAODBase Event/xAOD/xAODCore Event/xAOD/xAODTracking - Control/AthLinks ) + Control/AthLinks + Control/CxxUtils) # Component(s) in the package: atlas_add_library( xAODBTagging xAODBTagging/*.h xAODBTagging/versions/*.h Root/*.cxx PUBLIC_HEADERS xAODBTagging - LINK_LIBRARIES AthContainers AthLinks xAODBase xAODCore xAODTracking ) + LINK_LIBRARIES AthContainers AthLinks xAODBase xAODCore xAODTracking CxxUtils) atlas_add_dictionary( xAODBTaggingDict xAODBTagging/xAODBTaggingDict.h diff --git a/Event/xAOD/xAODBTagging/Root/BTagVertexAccessors_v1.h b/Event/xAOD/xAODBTagging/Root/BTagVertexAccessors_v1.h index 1376af944079e85fc3c35fe84f5249efabd130de..0f90a1a6af6ab38764d5b2bf5af12f4269d857d5 100644 --- a/Event/xAOD/xAODBTagging/Root/BTagVertexAccessors_v1.h +++ b/Event/xAOD/xAODBTagging/Root/BTagVertexAccessors_v1.h @@ -4,7 +4,6 @@ Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration */ -// $Id: BTaggingAccessors_v1.h 584372 2014-02-20 10:51:12Z jerdmann $ #ifndef XAOD_BTAGGINGACCESSORS_V1_H #define XAOD_BTAGGINGACCESSORS_V1_H diff --git a/Event/xAOD/xAODBTagging/Root/BTagVertex_v1.cxx b/Event/xAOD/xAODBTagging/Root/BTagVertex_v1.cxx index d46cf323157c252e5956398717ead8ec6352fdc3..112feb312bbf52dfe3357fccfdbdd7cc9ac514e4 100644 --- a/Event/xAOD/xAODBTagging/Root/BTagVertex_v1.cxx +++ b/Event/xAOD/xAODBTagging/Root/BTagVertex_v1.cxx @@ -23,18 +23,7 @@ namespace xAOD { AUXSTORE_PRIMITIVE_SETTER_AND_GETTER( BTagVertex_v1, float, pv_compatibility, setPV_compatibility ) AUXSTORE_OBJECT_SETTER_AND_GETTER( BTagVertex_v1, std::vector<float>, compToOtherSV, setCompToOtherSV) - /*static SG::AuxElement::Accessor< std::vector< ElementLink< xAOD::BTagVertexContainer > > >reco_vertexLinkAcc( "reco_vertexLink" ); - - const std::vector<ElementLink<xAOD::BTagVertexContainer> >& BTagVertex_v1::reco_vertexLink() const { - return reco_vertexLinkAcc( *this ); - } - - void BTagVertex_v1::setReco_vertexLink(const std::vector<ElementLink<xAOD::BTagVertexContainer> >& value) { - reco_vertexLinkAcc( *this ) = value; - return; - }*/ - - + // Implementation of accessors for the constituent tracks AUXSTORE_OBJECT_SETTER_AND_GETTER( BTagVertex_v1, std::vector<float>, track_chi2, setTrack_chi2) @@ -43,7 +32,7 @@ namespace xAOD { AUXSTORE_OBJECT_SETTER_AND_GETTER( BTagVertex_v1, std::vector<float>, track_refPy, setTrack_refPy) AUXSTORE_OBJECT_SETTER_AND_GETTER( BTagVertex_v1, std::vector<float>, track_refPz, setTrack_refPz) - static SG::AuxElement::Accessor<std::vector< ElementLink< xAOD::TrackParticleContainer > > > track_linkAcc( "track_links" ); + static const SG::AuxElement::Accessor<std::vector< ElementLink< xAOD::TrackParticleContainer > > > track_linkAcc( "track_links" ); const std::vector<ElementLink<xAOD::TrackParticleContainer> >& BTagVertex_v1::track_links() const { return track_linkAcc( *this ); diff --git a/Event/xAOD/xAODBTagging/Root/BTaggingAccessors_v1.cxx b/Event/xAOD/xAODBTagging/Root/BTaggingAccessors_v1.cxx index 75a331718555f9e2bd6c789e1298c374ae450e14..589f3adaf31a2e39a0e847d44ccb66a06bfdcd5b 100644 --- a/Event/xAOD/xAODBTagging/Root/BTaggingAccessors_v1.cxx +++ b/Event/xAOD/xAODBTagging/Root/BTaggingAccessors_v1.cxx @@ -15,14 +15,14 @@ #define DEFINE_ACCESSOR(TYPE, NAME ) \ case xAOD::NAME: \ { \ - static SG::AuxElement::Accessor< TYPE > a( #NAME ); \ + static const SG::AuxElement::Accessor< TYPE > a( #NAME ); \ return &a; \ } \ break; namespace xAOD { - SG::AuxElement::Accessor< int >* taggerInfoAccessorV1int(BTagInfo info ) + const SG::AuxElement::Accessor< int >* taggerInfoAccessorV1int(BTagInfo info ) { switch( info ) { DEFINE_ACCESSOR( int, SV0_NGTinJet ); @@ -44,7 +44,7 @@ namespace xAOD { } } - SG::AuxElement::Accessor< float >* taggerInfoAccessorV1float(BTagInfo info ) + const SG::AuxElement::Accessor< float >* taggerInfoAccessorV1float(BTagInfo info ) { switch( info ) { DEFINE_ACCESSOR( float, SV0_masssvx ); @@ -65,7 +65,7 @@ namespace xAOD { } } - SG::AuxElement::Accessor< uint8_t >* taggerInfoAccessorV1uint8_t(BTagInfo info ) + const SG::AuxElement::Accessor< uint8_t >* taggerInfoAccessorV1uint8_t(BTagInfo info ) { switch( info ) { //DEFINE_ACCESSOR( uint8_t, IP2D_isFromV0 ); @@ -77,7 +77,7 @@ namespace xAOD { } } - SG::AuxElement::Accessor< std::string >* taggerInfoAccessorV1string(BTagInfo info ) + const SG::AuxElement::Accessor< std::string >* taggerInfoAccessorV1string(BTagInfo info ) { switch( info ) { //DEFINE_ACCESSOR( std::string, IP2D_gradeName ); @@ -89,7 +89,7 @@ namespace xAOD { } } - SG::AuxElement::Accessor< std::vector<int> >* taggerInfoAccessorV1vectorOfInts(BTagInfo info ) + const SG::AuxElement::Accessor< std::vector<int> >* taggerInfoAccessorV1vectorOfInts(BTagInfo info ) { switch( info ) { DEFINE_ACCESSOR( std::vector<int>, IP2D_gradeOfTracks ); @@ -101,7 +101,7 @@ namespace xAOD { } } - SG::AuxElement::Accessor< std::vector<float> >* taggerInfoAccessorV1vectorOfFloats(BTagInfo info ) + const SG::AuxElement::Accessor< std::vector<float> >* taggerInfoAccessorV1vectorOfFloats(BTagInfo info ) { switch( info ) { DEFINE_ACCESSOR( std::vector<float>, IP3D_valD0wrtPVofTracks ); @@ -123,7 +123,7 @@ namespace xAOD { } } - SG::AuxElement::Accessor< std::vector<bool> >* taggerInfoAccessorV1vectorOfBools(BTagInfo info ) + const SG::AuxElement::Accessor< std::vector<bool> >* taggerInfoAccessorV1vectorOfBools(BTagInfo info ) { switch( info ) { DEFINE_ACCESSOR( std::vector<bool>, IP3D_flagFromV0ofTracks ); diff --git a/Event/xAOD/xAODBTagging/Root/BTaggingAccessors_v1.h b/Event/xAOD/xAODBTagging/Root/BTaggingAccessors_v1.h index 6a157c2f60b943ca8234cda192a74d6683b0dbe0..434b93d611e92bf34cf39c8cc688fa98a15814bb 100644 --- a/Event/xAOD/xAODBTagging/Root/BTaggingAccessors_v1.h +++ b/Event/xAOD/xAODBTagging/Root/BTaggingAccessors_v1.h @@ -24,13 +24,13 @@ namespace xAOD { /// This function holds on to Accessor objects that can be used by each /// BTagging_v1 object at runtime to get/set detail values on themselves. - SG::AuxElement::Accessor< int >* taggerInfoAccessorV1int(BTagInfo info); - SG::AuxElement::Accessor< float >* taggerInfoAccessorV1float(BTagInfo info); - SG::AuxElement::Accessor< uint8_t >* taggerInfoAccessorV1uint8_t(BTagInfo info); - SG::AuxElement::Accessor< std::string >* taggerInfoAccessorV1string(BTagInfo info); - SG::AuxElement::Accessor< std::vector<int> >* taggerInfoAccessorV1vectorOfInts(BTagInfo info); - SG::AuxElement::Accessor< std::vector<float> >* taggerInfoAccessorV1vectorOfFloats(BTagInfo info); - SG::AuxElement::Accessor< std::vector<bool> >* taggerInfoAccessorV1vectorOfBools(BTagInfo info); + const SG::AuxElement::Accessor< int >* taggerInfoAccessorV1int(BTagInfo info); + const SG::AuxElement::Accessor< float >* taggerInfoAccessorV1float(BTagInfo info); + const SG::AuxElement::Accessor< uint8_t >* taggerInfoAccessorV1uint8_t(BTagInfo info); + const SG::AuxElement::Accessor< std::string >* taggerInfoAccessorV1string(BTagInfo info); + const SG::AuxElement::Accessor< std::vector<int> >* taggerInfoAccessorV1vectorOfInts(BTagInfo info); + const SG::AuxElement::Accessor< std::vector<float> >* taggerInfoAccessorV1vectorOfFloats(BTagInfo info); + const SG::AuxElement::Accessor< std::vector<bool> >* taggerInfoAccessorV1vectorOfBools(BTagInfo info); } // namespace xAOD diff --git a/Event/xAOD/xAODBTagging/Root/BTagging_v1.cxx b/Event/xAOD/xAODBTagging/Root/BTagging_v1.cxx index 4e8e0017117a424bfe1efe1deb8179e279da1089..a6e35bb23c6645e65e8a4c668df30ae537f03110 100644 --- a/Event/xAOD/xAODBTagging/Root/BTagging_v1.cxx +++ b/Event/xAOD/xAODBTagging/Root/BTagging_v1.cxx @@ -29,9 +29,9 @@ namespace xAOD { setSV0_significance3D ) // The accessor object(s): - static SG::AuxElement::Accessor< BTagging_v1::TPELVec_t > + static const SG::AuxElement::Accessor< BTagging_v1::TPELVec_t > sv0TPAcc1( "SV0_TrackParticles" ); - static SG::AuxElement::Accessor< BTagging_v1::TPELVec_t > + static const SG::AuxElement::Accessor< BTagging_v1::TPELVec_t > sv0TPAcc2( "SV0_TrackParticleLinks" ); const BTagging_v1::TPELVec_t& BTagging_v1::SV0_TrackParticleLinks() const { @@ -102,9 +102,9 @@ namespace xAOD { setSV1_pc ) // The accessor object(s): - static SG::AuxElement::Accessor< BTagging_v1::TPELVec_t > + static const SG::AuxElement::Accessor< BTagging_v1::TPELVec_t > sv1TPAcc1( "SV1_TrackParticles" ); - static SG::AuxElement::Accessor< BTagging_v1::TPELVec_t > + static const SG::AuxElement::Accessor< BTagging_v1::TPELVec_t > sv1TPAcc2( "SV1_TrackParticleLinks" ); const BTagging_v1::TPELVec_t& BTagging_v1::SV1_TrackParticleLinks() const { @@ -175,9 +175,9 @@ namespace xAOD { setIP2D_pc ) // The accessor object(s): - static SG::AuxElement::Accessor< BTagging_v1::TPELVec_t > + static const SG::AuxElement::Accessor< BTagging_v1::TPELVec_t > ip2dTPAcc1( "IP2D_TrackParticles" ); - static SG::AuxElement::Accessor< BTagging_v1::TPELVec_t > + static const SG::AuxElement::Accessor< BTagging_v1::TPELVec_t > ip2dTPAcc2( "IP2D_TrackParticleLinks" ); const BTagging_v1::TPELVec_t& BTagging_v1::IP2D_TrackParticleLinks() const { @@ -249,9 +249,9 @@ namespace xAOD { setIP3D_pc ) // The accessor object(s): - static SG::AuxElement::Accessor< BTagging_v1::TPELVec_t > + static const SG::AuxElement::Accessor< BTagging_v1::TPELVec_t > ip3dTPAcc1( "IP3D_TrackParticles" ); - static SG::AuxElement::Accessor< BTagging_v1::TPELVec_t > + static const SG::AuxElement::Accessor< BTagging_v1::TPELVec_t > ip3dTPAcc2( "IP3D_TrackParticleLinks" ); const BTagging_v1::TPELVec_t& BTagging_v1::IP3D_TrackParticleLinks() const { @@ -410,7 +410,7 @@ namespace xAOD { bool BTagging_v1::taggerInfo( int& value, const BTagInfo info ) const { - Accessor< int >* acc = taggerInfoAccessorV1int( info ); + const Accessor< int >* acc = taggerInfoAccessorV1int( info ); if( ! acc ) return false; if( ! acc->isAvailable( *this ) ) return false; value = ( *acc )( *this ); @@ -419,7 +419,7 @@ namespace xAOD { bool BTagging_v1::taggerInfo( float& value, const BTagInfo info) const { - Accessor< float >* acc = taggerInfoAccessorV1float( info ); + const Accessor< float >* acc = taggerInfoAccessorV1float( info ); if( ! acc ) return false; if( ! acc->isAvailable( *this ) ) return false; value = ( *acc )( *this ); @@ -428,7 +428,7 @@ namespace xAOD { bool BTagging_v1::taggerInfo( bool& value, const BTagInfo info ) const { - Accessor< uint8_t >* acc = taggerInfoAccessorV1uint8_t( info ); + const Accessor< uint8_t >* acc = taggerInfoAccessorV1uint8_t( info ); if( ! acc ) return false; if( ! acc->isAvailable( *this ) ) return false; value = ( *acc )( *this ); @@ -438,7 +438,7 @@ namespace xAOD { bool BTagging_v1::taggerInfo( std::string& value, const BTagInfo info ) const { - Accessor< std::string >* acc = taggerInfoAccessorV1string( info ); + const Accessor< std::string >* acc = taggerInfoAccessorV1string( info ); if( ! acc ) return false; if( ! acc->isAvailable( *this ) ) return false; value = ( *acc )( *this ); @@ -448,7 +448,7 @@ namespace xAOD { bool BTagging_v1::taggerInfo( std::vector<int>& value, const BTagInfo info ) const { - Accessor< std::vector<int> >* acc = taggerInfoAccessorV1vectorOfInts( info ); + const Accessor< std::vector<int> >* acc = taggerInfoAccessorV1vectorOfInts( info ); if( ! acc ) return false; if( ! acc->isAvailable( *this ) ) return false; value = ( *acc )( *this ); @@ -458,7 +458,7 @@ namespace xAOD { bool BTagging_v1::taggerInfo( std::vector<float>& value, const BTagInfo info ) const { - Accessor< std::vector<float> >* acc = taggerInfoAccessorV1vectorOfFloats( info ); + const Accessor< std::vector<float> >* acc = taggerInfoAccessorV1vectorOfFloats( info ); if( ! acc ) return false; if( ! acc->isAvailable( *this ) ) return false; value = ( *acc )( *this ); @@ -468,7 +468,7 @@ namespace xAOD { bool BTagging_v1::taggerInfo( std::vector<bool>& value, const BTagInfo info ) const { - Accessor< std::vector<bool> >* acc = taggerInfoAccessorV1vectorOfBools( info ); + const Accessor< std::vector<bool> >* acc = taggerInfoAccessorV1vectorOfBools( info ); if( ! acc ) return false; if( ! acc->isAvailable( *this ) ) return false; value = ( *acc )( *this ); @@ -477,7 +477,7 @@ namespace xAOD { void BTagging_v1::setTaggerInfo( int value, const BTagInfo info ) { - Accessor< int >* acc = taggerInfoAccessorV1int( info ); + const Accessor< int >* acc = taggerInfoAccessorV1int( info ); if( ! acc ) return; ( *acc )( *this ) = value; return; @@ -485,7 +485,7 @@ namespace xAOD { void BTagging_v1::setTaggerInfo( float value, const BTagInfo info ) { - Accessor< float >* acc = taggerInfoAccessorV1float( info ); + const Accessor< float >* acc = taggerInfoAccessorV1float( info ); if( ! acc ) return; ( *acc )( *this ) = value; return; @@ -493,7 +493,7 @@ namespace xAOD { void BTagging_v1::setTaggerInfo( bool value, const BTagInfo info ) { - Accessor< uint8_t >* acc = taggerInfoAccessorV1uint8_t( info ); + const Accessor< uint8_t >* acc = taggerInfoAccessorV1uint8_t( info ); if( ! acc ) return; ( *acc )( *this ) = uint8_t(value); return; @@ -502,7 +502,7 @@ namespace xAOD { void BTagging_v1::setTaggerInfo( const std::string& value, const BTagInfo info ) { - Accessor< std::string >* acc = taggerInfoAccessorV1string( info ); + const Accessor< std::string >* acc = taggerInfoAccessorV1string( info ); if( ! acc ) return; ( *acc )( *this ) = value; return; @@ -511,7 +511,7 @@ namespace xAOD { void BTagging_v1::setTaggerInfo( const std::vector<int>& value, const BTagInfo info ) { - Accessor< std::vector<int> >* acc = taggerInfoAccessorV1vectorOfInts( info ); + const Accessor< std::vector<int> >* acc = taggerInfoAccessorV1vectorOfInts( info ); if( ! acc ) return; ( *acc )( *this ) = value; return; @@ -520,7 +520,7 @@ namespace xAOD { void BTagging_v1::setTaggerInfo( const std::vector<float>& value, const BTagInfo info ) { - Accessor< std::vector<float> >* acc = taggerInfoAccessorV1vectorOfFloats( info ); + const Accessor< std::vector<float> >* acc = taggerInfoAccessorV1vectorOfFloats( info ); if( ! acc ) return; ( *acc )( *this ) = value; return; @@ -529,7 +529,7 @@ namespace xAOD { void BTagging_v1::setTaggerInfo( const std::vector<bool>& value, const BTagInfo info ) { - Accessor< std::vector<bool> >* acc = taggerInfoAccessorV1vectorOfBools( info ); + const Accessor< std::vector<bool> >* acc = taggerInfoAccessorV1vectorOfBools( info ); if( ! acc ) return; ( *acc )( *this ) = value; return; @@ -543,7 +543,7 @@ namespace xAOD { static std::map<std::string, SG::AuxElement::Accessor<BTagging_v1::VxELVec_t> > DynVxELVec; static std::map<std::string, SG::AuxElement::Accessor<BTagging_v1::BTagVxELVec_t> > DynBTagVxELVec; - void BTagging_v1::toPersistent() { + void BTagging_v1::toPersistent ATLAS_NOT_REENTRANT () { TPELVec_t::iterator itr; TPELVec_t::iterator end; @@ -584,14 +584,13 @@ namespace xAOD { for(; dyniter != DynTPELVec.end(); ++dyniter){ - if( dyniter->second.isAvailableWritable( *this ) ) { - itr = dyniter->second( *this ).begin(); - end = dyniter->second( *this ).end(); - for( ; itr != end; ++itr ) { + if( dyniter->second.isAvailableWritable( *this ) ) { + itr = dyniter->second( *this ).begin(); + end = dyniter->second( *this ).end(); + for( ; itr != end; ++itr ) { itr->toPersistent(); - } - } - + } + } } @@ -602,14 +601,13 @@ namespace xAOD { for(; dynvxiter != DynVxELVec.end(); ++dynvxiter){ - if( dynvxiter->second.isAvailableWritable( *this ) ) { - vxitr = dynvxiter->second( *this ).begin(); - vxend = dynvxiter->second( *this ).end(); - for( ; vxitr != vxend; ++vxitr ) { + if( dynvxiter->second.isAvailableWritable( *this ) ) { + vxitr = dynvxiter->second( *this ).begin(); + vxend = dynvxiter->second( *this ).end(); + for( ; vxitr != vxend; ++vxitr ) { vxitr->toPersistent(); - } - } - + } + } } BTagVxELVec_t::iterator btagvxitr; @@ -619,46 +617,43 @@ namespace xAOD { for(; dynbtagvxiter != DynBTagVxELVec.end(); ++dynbtagvxiter){ - if( dynbtagvxiter->second.isAvailableWritable( *this ) ) { - btagvxitr = dynbtagvxiter->second( *this ).begin(); - btagvxend = dynbtagvxiter->second( *this ).end(); - for( ; btagvxitr != btagvxend; ++btagvxitr ) { + if( dynbtagvxiter->second.isAvailableWritable( *this ) ) { + btagvxitr = dynbtagvxiter->second( *this ).begin(); + btagvxend = dynbtagvxiter->second( *this ).end(); + for( ; btagvxitr != btagvxend; ++btagvxitr ) { btagvxitr->toPersistent(); - } - } - + } + } } - - return; } - void BTagging_v1::setDynTPELName( const std::string &taggername, + void BTagging_v1::setDynTPELName ATLAS_NOT_REENTRANT ( const std::string &taggername, const std::string &variablename) { std::string varname = taggername+ "_" + variablename; - Accessor< TPELVec_t > acc( varname ); + const Accessor< TPELVec_t > acc( varname ); DynTPELVec.insert(std::make_pair(varname,acc)); return; } - void BTagging_v1::setDynVxELName( const std::string &taggername, + void BTagging_v1::setDynVxELName ATLAS_NOT_REENTRANT ( const std::string &taggername, const std::string &variablename) { std::string varname = taggername+ "_" + variablename; - Accessor< VxELVec_t > acc( varname ); + const Accessor< VxELVec_t > acc( varname ); DynVxELVec.insert(std::make_pair(varname,acc)); return; } - void BTagging_v1::setDynBTagVxELName( const std::string &taggername, + void BTagging_v1::setDynBTagVxELName ATLAS_NOT_REENTRANT ( const std::string &taggername, const std::string &variablename) { std::string varname = taggername+ "_" + variablename; - Accessor< BTagVxELVec_t > acc( varname ); + const Accessor< BTagVxELVec_t > acc( varname ); DynBTagVxELVec.insert(std::make_pair(varname,acc)); return; } diff --git a/Event/xAOD/xAODBTagging/Root/SecVtxHelper.cxx b/Event/xAOD/xAODBTagging/Root/SecVtxHelper.cxx index d1ad5b50511485dddf6a68dc14d2c067c8990de0..b611cfbd3376e0c0eea45ae0df228c1b1873e887 100644 --- a/Event/xAOD/xAODBTagging/Root/SecVtxHelper.cxx +++ b/Event/xAOD/xAODBTagging/Root/SecVtxHelper.cxx @@ -7,7 +7,7 @@ // get variable mass float xAOD::SecVtxHelper::VertexMass(const xAOD::Vertex* vtx){ - static SG::AuxElement::Accessor<float> a("mass"); + static const SG::AuxElement::Accessor<float> a("mass"); if(!a.isAvailable(*vtx)){ std::cout << "ERROR: Failed to get mass" << std::endl; return 0; @@ -16,13 +16,13 @@ } // set variable mass void xAOD::SecVtxHelper::setVertexMass(xAOD::Vertex * vtx, float val){ - static SG::AuxElement::Accessor<float> a("mass"); + static const SG::AuxElement::Accessor<float> a("mass"); a(*vtx)=val; } // get variable energyFraction float xAOD::SecVtxHelper::EnergyFraction(const xAOD::Vertex* vtx){ - static SG::AuxElement::Accessor<float> a("energyFraction"); + static const SG::AuxElement::Accessor<float> a("energyFraction"); if(!a.isAvailable(*vtx)){ std::cout << "ERROR: Failed to get energyFraction" << std::endl; return 0; @@ -31,13 +31,13 @@ } // set variable energyFraction void xAOD::SecVtxHelper::setEnergyFraction(xAOD::Vertex * vtx, float val){ - static SG::AuxElement::Accessor<float> a("energyFraction"); + static const SG::AuxElement::Accessor<float> a("energyFraction"); a(*vtx)=val; } // int xAOD::SecVtxHelper::VtxNtrk(const xAOD::Vertex* vtx){ - static SG::AuxElement::Accessor<int> a("ntrk"); + static const SG::AuxElement::Accessor<int> a("ntrk"); if(!a.isAvailable(*vtx)){ std::cout << "ERROR: Failed to get ntrk" << std::endl; return 0; @@ -46,12 +46,12 @@ } // void xAOD::SecVtxHelper::setVtxNtrk(xAOD::Vertex * vtx, int val){ - static SG::AuxElement::Accessor<int> a("ntrk"); + static const SG::AuxElement::Accessor<int> a("ntrk"); a(*vtx)=val; } // float xAOD::SecVtxHelper::Vtxpt(const xAOD::Vertex* vtx){ - static SG::AuxElement::Accessor<float> a("pt"); + static const SG::AuxElement::Accessor<float> a("pt"); if(!a.isAvailable(*vtx)){ std::cout << "ERROR: Failed to get pt" << std::endl; return 0; @@ -60,12 +60,12 @@ } // void xAOD::SecVtxHelper::setVtxpt(xAOD::Vertex * vtx, float val){ - static SG::AuxElement::Accessor<float> a("pt"); + static const SG::AuxElement::Accessor<float> a("pt"); a(*vtx)=val; } // float xAOD::SecVtxHelper::Vtxeta(const xAOD::Vertex* vtx){ - static SG::AuxElement::Accessor<float> a("eta"); + static const SG::AuxElement::Accessor<float> a("eta"); if(!a.isAvailable(*vtx)){ std::cout << "ERROR: Failed to get eta" << std::endl; return 0; @@ -74,12 +74,12 @@ } // void xAOD::SecVtxHelper::setVtxeta(xAOD::Vertex * vtx, float val){ - static SG::AuxElement::Accessor<float> a("eta"); + static const SG::AuxElement::Accessor<float> a("eta"); a(*vtx)=val; } // float xAOD::SecVtxHelper::Vtxphi(const xAOD::Vertex* vtx){ - static SG::AuxElement::Accessor<float> a("phi"); + static const SG::AuxElement::Accessor<float> a("phi"); if(!a.isAvailable(*vtx)){ std::cout << "ERROR: Failed to get phi" << std::endl; return 0; @@ -88,12 +88,12 @@ } // void xAOD::SecVtxHelper::setVtxphi(xAOD::Vertex * vtx, float val){ - static SG::AuxElement::Accessor<float> a("phi"); + static const SG::AuxElement::Accessor<float> a("phi"); a(*vtx)=val; } // float xAOD::SecVtxHelper::VtxnormDist(const xAOD::Vertex* vtx){ - static SG::AuxElement::Accessor<float> a("normDist"); + static const SG::AuxElement::Accessor<float> a("normDist"); if(!a.isAvailable(*vtx)){ std::cout << "ERROR: Failed to get normDist" << std::endl; return 0; @@ -102,7 +102,7 @@ } // void xAOD::SecVtxHelper::setVtxnormDist(xAOD::Vertex * vtx, float val){ - static SG::AuxElement::Accessor<float> a("normDist"); + static const SG::AuxElement::Accessor<float> a("normDist"); a(*vtx)=val; } diff --git a/Event/xAOD/xAODBTagging/xAODBTagging/ATLAS_CHECK_THREAD_SAFETY b/Event/xAOD/xAODBTagging/xAODBTagging/ATLAS_CHECK_THREAD_SAFETY new file mode 100644 index 0000000000000000000000000000000000000000..b1733632912be99265350fcc9f1e599e1c1a629e --- /dev/null +++ b/Event/xAOD/xAODBTagging/xAODBTagging/ATLAS_CHECK_THREAD_SAFETY @@ -0,0 +1 @@ +Event/xAOD/xAODBTagging diff --git a/Event/xAOD/xAODBTagging/xAODBTagging/versions/BTagging_v1.h b/Event/xAOD/xAODBTagging/xAODBTagging/versions/BTagging_v1.h index 2148d4e1eae96c04d7cf24a3d191dfc5f3d861c1..ab8c1eb577fcc839d8b35dfb9d36ce15100f148a 100644 --- a/Event/xAOD/xAODBTagging/xAODBTagging/versions/BTagging_v1.h +++ b/Event/xAOD/xAODBTagging/xAODBTagging/versions/BTagging_v1.h @@ -23,6 +23,7 @@ #include <vector> #include <string> #include <iostream> +#include "CxxUtils/checker_macros.h" namespace xAOD { @@ -299,13 +300,13 @@ namespace xAOD { /// @} ///@name xAOD::BTagging helper for ElementLink Persistification - void toPersistent(); + void toPersistent ATLAS_NOT_REENTRANT (); - void setDynTPELName(const std::string &taggername, + void setDynTPELName ATLAS_NOT_REENTRANT (const std::string &taggername, const std::string &variablename); - void setDynVxELName(const std::string &taggername, + void setDynVxELName ATLAS_NOT_REENTRANT (const std::string &taggername, const std::string &variablename); - void setDynBTagVxELName(const std::string &taggername, + void setDynBTagVxELName ATLAS_NOT_REENTRANT (const std::string &taggername, const std::string &variablename); diff --git a/HLT/Trigger/TrigControl/TrigServices/src/HltEventLoopMgr.cxx b/HLT/Trigger/TrigControl/TrigServices/src/HltEventLoopMgr.cxx index 38ec8400fc7b820b78d319fd316c45a94db7cf4e..76a6599cbe003f71db75ba8015b4c7928881910b 100644 --- a/HLT/Trigger/TrigControl/TrigServices/src/HltEventLoopMgr.cxx +++ b/HLT/Trigger/TrigControl/TrigServices/src/HltEventLoopMgr.cxx @@ -308,8 +308,6 @@ StatusCode HltEventLoopMgr::finalize() } m_topAlgList.clear(); -// Backward compatibility can be removed when we switch to using C++17 by default -#if __cplusplus >= 201500L // C++17 (needed for fold expressions) // Release all handles auto releaseAndCheck = [&](auto& handle, std::string handleType) { if (handle.release().isFailure()) @@ -337,40 +335,6 @@ StatusCode HltEventLoopMgr::finalize() m_schedulerSvc, m_hltROBDataProviderSvc); -#else // standard older than C++17 - // Release service handles - if (m_incidentSvc.release().isFailure()) - ATH_REPORT_MESSAGE(MSG::WARNING) << "Failed to release service " << m_incidentSvc.typeAndName(); - if (m_robDataProviderSvc.release().isFailure()) - ATH_REPORT_MESSAGE(MSG::WARNING) << "Failed to release service " << m_robDataProviderSvc.typeAndName(); - if (m_evtStore.release().isFailure()) - ATH_REPORT_MESSAGE(MSG::WARNING) << "Failed to release service " << m_evtStore.typeAndName(); - if (m_detectorStore.release().isFailure()) - ATH_REPORT_MESSAGE(MSG::WARNING) << "Failed to release service " << m_detectorStore.typeAndName(); - if (m_inputMetaDataStore.release().isFailure()) - ATH_REPORT_MESSAGE(MSG::WARNING) << "Failed to release service " << m_inputMetaDataStore.typeAndName(); - if (m_THistSvc.release().isFailure()) - ATH_REPORT_MESSAGE(MSG::WARNING) << "Failed to release service " << m_THistSvc.typeAndName(); - if (m_evtSelector.release().isFailure()) - ATH_REPORT_MESSAGE(MSG::WARNING) << "Failed to release service " << m_evtSelector.typeAndName(); - if (m_outputCnvSvc.release().isFailure()) - ATH_REPORT_MESSAGE(MSG::WARNING) << "Failed to release service " << m_outputCnvSvc.typeAndName(); - - // Release tool handles - if (m_coolHelper.release().isFailure()) - ATH_REPORT_MESSAGE(MSG::WARNING) << "Failed to release tool " << m_coolHelper.typeAndName(); - if (m_hltResultMaker.release().isFailure()) - ATH_REPORT_MESSAGE(MSG::WARNING) << "Failed to release tool " << m_hltResultMaker.typeAndName(); - - // Release SmartIFs - m_whiteboard.reset(); - m_algResourcePool.reset(); - m_aess.reset(); - m_schedulerSvc.reset(); - m_hltROBDataProviderSvc.reset(); - -#endif - return StatusCode::SUCCESS; } diff --git a/InnerDetector/InDetConditions/SCT_ConditionsData/src/SCT_ConfigurationCondData.cxx b/InnerDetector/InDetConditions/SCT_ConditionsData/src/SCT_ConfigurationCondData.cxx index c637c9d2c4009ed54a0e05fca0bf910cbce854ce..ae7654ce10993641092de72fae455a1844576d88 100644 --- a/InnerDetector/InDetConditions/SCT_ConditionsData/src/SCT_ConfigurationCondData.cxx +++ b/InnerDetector/InDetConditions/SCT_ConditionsData/src/SCT_ConfigurationCondData.cxx @@ -102,8 +102,12 @@ bool SCT_ConfigurationCondData::isBadModuleId(const Identifier& moduleId) const void SCT_ConfigurationCondData::setBadLinks(const IdentifierHash& hash, const bool isBadLink0, const bool isBadLink1) { unsigned int iHash{hash}; iHash = (iHash/2)*2; // Make iHash even - m_badLinks[iHash].first &= isBadLink0; - m_badLinks[iHash].second &= isBadLink1; + if (m_badLinks.count(iHash)==0) { + m_badLinks.insert(std::pair<IdentifierHash, std::pair<bool, bool>>(iHash, std::pair<bool, bool>(isBadLink0, isBadLink1))); + } else { + m_badLinks[iHash].first &= isBadLink0; + m_badLinks[iHash].second &= isBadLink1; + } m_badLinksArray[iHash/2].first &= isBadLink0; m_badLinksArray[iHash/2].second &= isBadLink1; } diff --git a/LArCalorimeter/LArCnv/LArByteStream/LArByteStream/LArAccumulatedCalibDigitContByteStreamCnv.h b/LArCalorimeter/LArCnv/LArByteStream/LArByteStream/LArAccumulatedCalibDigitContByteStreamCnv.h index 56e71cf7386f81ef28d2e189d54ea97f0a142734..aeb63e3c5388366c64b4de9a4769b810784b3a7b 100644 --- a/LArCalorimeter/LArCnv/LArByteStream/LArByteStream/LArAccumulatedCalibDigitContByteStreamCnv.h +++ b/LArCalorimeter/LArCnv/LArByteStream/LArByteStream/LArAccumulatedCalibDigitContByteStreamCnv.h @@ -1,7 +1,7 @@ //Dear emacs, this is -*- c++ -*- /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #ifndef LARBYTESTREAM_LARACCUMULATEDCDIGITCONTRAWEVENTCNV_H @@ -34,9 +34,6 @@ class ByteStreamCnvSvc; // Abstract factory to create the converter template <class TYPE> class CnvFactory; -// Externals -extern long ByteStream_StorageType; - class LArAccumulatedCalibDigitContByteStreamCnv: public Converter { public: @@ -51,8 +48,8 @@ public: virtual StatusCode createRep(DataObject* pObj, IOpaqueAddress*& pAddr); /// Storage type and class ID - virtual long repSvcType() const { return ByteStream_StorageType;} - static long storageType() { return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } + static long storageType() { return ByteStreamAddress::storageType(); } static const CLID& classID(); private: diff --git a/LArCalorimeter/LArCnv/LArByteStream/LArByteStream/LArAccumulatedDigitContByteStreamCnv.h b/LArCalorimeter/LArCnv/LArByteStream/LArByteStream/LArAccumulatedDigitContByteStreamCnv.h index 19001569bd24cdcdbd9b9223fc72278ac490dcfb..39cad9f5e7e481c29bde0b46acec26b7c42f73c0 100644 --- a/LArCalorimeter/LArCnv/LArByteStream/LArByteStream/LArAccumulatedDigitContByteStreamCnv.h +++ b/LArCalorimeter/LArCnv/LArByteStream/LArByteStream/LArAccumulatedDigitContByteStreamCnv.h @@ -1,7 +1,7 @@ //Dear emacs, this is -*- c++ -*- /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #ifndef LARBYTESTREAM_LARACCUMULATEDDIGITCONTRAWEVENTCNV_H @@ -34,9 +34,6 @@ class ByteStreamCnvSvc; // Abstract factory to create the converter template <class TYPE> class CnvFactory; -// Externals -extern long ByteStream_StorageType; - class LArAccumulatedDigitContByteStreamCnv: public Converter { public: @@ -51,8 +48,8 @@ public: virtual StatusCode createRep(DataObject* pObj, IOpaqueAddress*& pAddr); /// Storage type and class ID - virtual long repSvcType() const { return ByteStream_StorageType;} - static long storageType() { return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } + static long storageType() { return ByteStreamAddress::storageType(); } static const CLID& classID(); private: diff --git a/LArCalorimeter/LArCnv/LArByteStream/LArByteStream/LArCalibDigitContByteStreamCnv.h b/LArCalorimeter/LArCnv/LArByteStream/LArByteStream/LArCalibDigitContByteStreamCnv.h index 8b49de7edb4c70409e7d042531ae352ea6c011f8..ecf8d3aff477e90bae5cae99b24fa82fa464d040 100644 --- a/LArCalorimeter/LArCnv/LArByteStream/LArByteStream/LArCalibDigitContByteStreamCnv.h +++ b/LArCalorimeter/LArCnv/LArByteStream/LArByteStream/LArCalibDigitContByteStreamCnv.h @@ -1,7 +1,7 @@ //Dear emacs, this is -*- c++ -*- /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #ifndef LARBYTESTREAM_LARCALIBDIGITCONTRAWEVENTCNV_H @@ -34,9 +34,6 @@ class ByteStreamCnvSvc; // Abstract factory to create the converter template <class TYPE> class CnvFactory; -// Externals -extern long ByteStream_StorageType; - class LArCalibDigitContByteStreamCnv: public Converter { public: @@ -50,8 +47,8 @@ public: virtual StatusCode createRep(DataObject* pObj, IOpaqueAddress*& pAddr); /// Storage type and class ID - virtual long repSvcType() const { return ByteStream_StorageType;} - static long storageType() { return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } + static long storageType() { return ByteStreamAddress::storageType(); } static const CLID& classID(); private: diff --git a/LArCalorimeter/LArCnv/LArByteStream/LArByteStream/LArDigitContByteStreamCnv.h b/LArCalorimeter/LArCnv/LArByteStream/LArByteStream/LArDigitContByteStreamCnv.h index d37dd395622a6f1f0d4c3a8d6adf54c6d77cc1ac..d017f069d553a5200f6c132a99ff87aa17962dbe 100644 --- a/LArCalorimeter/LArCnv/LArByteStream/LArByteStream/LArDigitContByteStreamCnv.h +++ b/LArCalorimeter/LArCnv/LArByteStream/LArByteStream/LArDigitContByteStreamCnv.h @@ -1,7 +1,7 @@ //Dear emacs, this is -*- c++ -*- /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #ifndef LARBYTESTREAM_LARDIGITCONTRAWEVENTCNV_H @@ -34,9 +34,6 @@ class ByteStreamCnvSvc; // Abstract factory to create the converter template <class TYPE> class CnvFactory; -// Externals -extern long ByteStream_StorageType; - class LArDigitContByteStreamCnv: public Converter { public: @@ -51,8 +48,8 @@ public: virtual StatusCode createRep(DataObject* pObj, IOpaqueAddress*& pAddr); /// Storage type and class ID - virtual long repSvcType() const { return ByteStream_StorageType; } - static long storageType() { return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } + static long storageType() { return ByteStreamAddress::storageType(); } static const CLID& classID(); private: diff --git a/LArCalorimeter/LArCnv/LArByteStream/LArByteStream/LArFebHeaderContByteStreamCnv.h b/LArCalorimeter/LArCnv/LArByteStream/LArByteStream/LArFebHeaderContByteStreamCnv.h index cc25b02c3f8576a86310a7dc99deb190fbd2a798..92f5e28ac4fcbef1d0bc533a38fa2e1c8e65cb2c 100644 --- a/LArCalorimeter/LArCnv/LArByteStream/LArByteStream/LArFebHeaderContByteStreamCnv.h +++ b/LArCalorimeter/LArCnv/LArByteStream/LArByteStream/LArFebHeaderContByteStreamCnv.h @@ -1,7 +1,7 @@ //Dear emacs, this is -*- c++ -*- /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #ifndef LARBYTESTREAM_FEBHEADERCONTRAWEVENTCNV_H @@ -34,9 +34,6 @@ class ByteStreamCnvSvc; // Abstract factory to create the converter template <class TYPE> class CnvFactory; -// Externals -extern long ByteStream_StorageType; - class LArFebHeaderContByteStreamCnv: public Converter { public: LArFebHeaderContByteStreamCnv(ISvcLocator* svcloc); @@ -48,8 +45,8 @@ class LArFebHeaderContByteStreamCnv: public Converter { virtual StatusCode createRep(DataObject* pObj, IOpaqueAddress*& pAddr); /// Storage type and class ID - virtual long repSvcType() const { return ByteStream_StorageType;} - static long storageType() { return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } + static long storageType() { return ByteStreamAddress::storageType(); } static const CLID& classID(); private: diff --git a/LArCalorimeter/LArCnv/LArByteStream/LArByteStream/LArRawChannelContByteStreamCnv.h b/LArCalorimeter/LArCnv/LArByteStream/LArByteStream/LArRawChannelContByteStreamCnv.h index ab2188b6048becc5490a1df0164a70d76c7bc0e7..968883644651a241b14997139eda4f3e767e89f0 100644 --- a/LArCalorimeter/LArCnv/LArByteStream/LArByteStream/LArRawChannelContByteStreamCnv.h +++ b/LArCalorimeter/LArCnv/LArByteStream/LArByteStream/LArRawChannelContByteStreamCnv.h @@ -1,7 +1,7 @@ //Dear emacs, this is -*- c++ -*- /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #ifndef LARBYTESTREAM_LARRAWCHANNELCONTRAWEVENTCNV_H @@ -13,7 +13,6 @@ #include "ByteStreamData/RawEvent.h" #include "ByteStreamCnvSvcBase/ByteStreamAddress.h" //#include "LArByteStream/Hid2RESrcID.h" -# class DataObject; class StatusCode; @@ -29,9 +28,6 @@ class ByteStreamCnvSvc; // Abstract factory to create the converter template <class TYPE> class CnvFactory; -// Externals -extern long ByteStream_StorageType; - class LArRawChannelContByteStreamCnv: public Converter { public: @@ -46,8 +42,8 @@ class LArRawChannelContByteStreamCnv: public Converter { virtual StatusCode createRep(DataObject* pObj, IOpaqueAddress*& pAddr); /// Storage type and class ID - virtual long repSvcType() const { return ByteStream_StorageType; } - static long storageType() { return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } + static long storageType() { return ByteStreamAddress::storageType(); } static const CLID& classID(); private: diff --git a/LArCalorimeter/LArCnv/LArByteStream/src/LArAccumulatedCalibDigitContByteStreamCnv.cxx b/LArCalorimeter/LArCnv/LArByteStream/src/LArAccumulatedCalibDigitContByteStreamCnv.cxx index ad84f43c8d184ec1be359edaf87eb14945fe85c4..b071138fe8530e8ca3f8e8629d0e543c97cd5fcf 100644 --- a/LArCalorimeter/LArCnv/LArByteStream/src/LArAccumulatedCalibDigitContByteStreamCnv.cxx +++ b/LArCalorimeter/LArCnv/LArByteStream/src/LArAccumulatedCalibDigitContByteStreamCnv.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #include "LArByteStream/LArAccumulatedCalibDigitContByteStreamCnv.h" @@ -32,7 +32,7 @@ LArAccumulatedCalibDigitContByteStreamCnv::LArAccumulatedCalibDigitContByteStreamCnv(ISvcLocator* svcloc) : - Converter(ByteStream_StorageType, classID(),svcloc),m_log(NULL),m_tool(NULL),m_ByteStreamEventAccess(NULL),m_rdpSvc(NULL),m_storeGate(NULL){} + Converter(storageType(), classID(),svcloc),m_log(NULL),m_tool(NULL),m_ByteStreamEventAccess(NULL),m_rdpSvc(NULL),m_storeGate(NULL){} const CLID& LArAccumulatedCalibDigitContByteStreamCnv::classID(){ return ClassID_traits<LArAccumulatedCalibDigitContainer>::ID() ; diff --git a/LArCalorimeter/LArCnv/LArByteStream/src/LArAccumulatedDigitContByteStreamCnv.cxx b/LArCalorimeter/LArCnv/LArByteStream/src/LArAccumulatedDigitContByteStreamCnv.cxx index db7e42b94fc682f5f79e0d497ccd17ba0397cba9..562dfa424e0ef7b20a84542ba021ba506ff992ad 100644 --- a/LArCalorimeter/LArCnv/LArByteStream/src/LArAccumulatedDigitContByteStreamCnv.cxx +++ b/LArCalorimeter/LArCnv/LArByteStream/src/LArAccumulatedDigitContByteStreamCnv.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #include "LArByteStream/LArAccumulatedDigitContByteStreamCnv.h" @@ -32,7 +32,7 @@ LArAccumulatedDigitContByteStreamCnv::LArAccumulatedDigitContByteStreamCnv(ISvcLocator* svcloc) : - Converter(ByteStream_StorageType, classID(),svcloc),m_log(NULL),m_tool(NULL),m_ByteStreamEventAccess(NULL),m_rdpSvc(NULL),m_storeGate(NULL){} + Converter(storageType(), classID(),svcloc),m_log(NULL),m_tool(NULL),m_ByteStreamEventAccess(NULL),m_rdpSvc(NULL),m_storeGate(NULL){} const CLID& LArAccumulatedDigitContByteStreamCnv::classID(){ return ClassID_traits<LArAccumulatedDigitContainer>::ID() ; diff --git a/LArCalorimeter/LArCnv/LArByteStream/src/LArCalibDigitContByteStreamCnv.cxx b/LArCalorimeter/LArCnv/LArByteStream/src/LArCalibDigitContByteStreamCnv.cxx index 1cd8b3e1817900a1ba453786adfd8acef0d337e8..f86ce40b28a1c16a483a6d5a906cc2343503fa46 100644 --- a/LArCalorimeter/LArCnv/LArByteStream/src/LArCalibDigitContByteStreamCnv.cxx +++ b/LArCalorimeter/LArCnv/LArByteStream/src/LArCalibDigitContByteStreamCnv.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #include "LArByteStream/LArCalibDigitContByteStreamCnv.h" @@ -30,7 +30,7 @@ LArCalibDigitContByteStreamCnv::LArCalibDigitContByteStreamCnv(ISvcLocator* svcloc) : - Converter(ByteStream_StorageType, classID(),svcloc), + Converter(storageType(), classID(),svcloc), m_log(NULL),m_tool(NULL),m_ByteStreamEventAccess(NULL),m_rdpSvc(NULL),m_storeGate(NULL) {} LArCalibDigitContByteStreamCnv::~LArCalibDigitContByteStreamCnv() { diff --git a/LArCalorimeter/LArCnv/LArByteStream/src/LArDigitContByteStreamCnv.cxx b/LArCalorimeter/LArCnv/LArByteStream/src/LArDigitContByteStreamCnv.cxx index d12e94b5758148444204dc98d88478bd5e9afe46..804e4d738029314bb2e83ade3d2243e8acdd797e 100644 --- a/LArCalorimeter/LArCnv/LArByteStream/src/LArDigitContByteStreamCnv.cxx +++ b/LArCalorimeter/LArCnv/LArByteStream/src/LArDigitContByteStreamCnv.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #include "LArByteStream/LArDigitContByteStreamCnv.h" @@ -33,7 +33,7 @@ LArDigitContByteStreamCnv::LArDigitContByteStreamCnv(ISvcLocator* svcloc) : - Converter(ByteStream_StorageType, classID(),svcloc), m_log(NULL),m_tool(NULL),m_ByteStreamEventAccess(NULL),m_rdpSvc(NULL),m_storeGate(NULL){} + Converter(storageType(), classID(),svcloc), m_log(NULL),m_tool(NULL),m_ByteStreamEventAccess(NULL),m_rdpSvc(NULL),m_storeGate(NULL){} LArDigitContByteStreamCnv::~LArDigitContByteStreamCnv() { if (m_log) diff --git a/LArCalorimeter/LArCnv/LArByteStream/src/LArFebHeaderContByteStreamCnv.cxx b/LArCalorimeter/LArCnv/LArByteStream/src/LArFebHeaderContByteStreamCnv.cxx index 911f264ec322f8044f52d02c10d8a81d0c2d1898..eed4ce7041c200c09ef713c29c24a178735573f6 100644 --- a/LArCalorimeter/LArCnv/LArByteStream/src/LArFebHeaderContByteStreamCnv.cxx +++ b/LArCalorimeter/LArCnv/LArByteStream/src/LArFebHeaderContByteStreamCnv.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #include "LArByteStream/LArFebHeaderContByteStreamCnv.h" @@ -33,7 +33,7 @@ LArFebHeaderContByteStreamCnv::LArFebHeaderContByteStreamCnv(ISvcLocator* svcloc) : - Converter(ByteStream_StorageType, classID(),svcloc),m_tool(NULL),m_ByteStreamEventAccess(NULL),m_rdpSvc(NULL),m_storeGate(NULL){} + Converter(storageType(), classID(),svcloc),m_tool(NULL),m_ByteStreamEventAccess(NULL),m_rdpSvc(NULL),m_storeGate(NULL){} const CLID& LArFebHeaderContByteStreamCnv::classID(){ return ClassID_traits<LArFebHeaderContainer>::ID() ; diff --git a/LArCalorimeter/LArCnv/LArByteStream/src/LArRawChannelContByteStreamCnv.cxx b/LArCalorimeter/LArCnv/LArByteStream/src/LArRawChannelContByteStreamCnv.cxx index 5686674e5a4d060f048136fcdceb6d51c9222321..43e4363990bf1174d0745e970a225fcb0b00f2ab 100644 --- a/LArCalorimeter/LArCnv/LArByteStream/src/LArRawChannelContByteStreamCnv.cxx +++ b/LArCalorimeter/LArCnv/LArByteStream/src/LArRawChannelContByteStreamCnv.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #include "LArByteStream/LArRawChannelContByteStreamCnv.h" @@ -34,7 +34,7 @@ LArRawChannelContByteStreamCnv::LArRawChannelContByteStreamCnv(ISvcLocator* svcloc) : - Converter(ByteStream_StorageType, classID(),svcloc), m_log(NULL), + Converter(storageType(), classID(),svcloc), m_log(NULL), m_tool(NULL),m_ByteStreamEventAccess(0),m_rdpSvc(0),m_storeGate(0),m_contSize(0) {} diff --git a/LArCalorimeter/LArDigitization/LArDigitization/LArPileUpTool.h b/LArCalorimeter/LArDigitization/LArDigitization/LArPileUpTool.h index 44f1acc5be36ebbd5ae4a91691d12bd694437df2..a1acd7290f4b22fa2cbd0f6ff6ecf7dca7cd09f2 100755 --- a/LArCalorimeter/LArDigitization/LArDigitization/LArPileUpTool.h +++ b/LArCalorimeter/LArDigitization/LArDigitization/LArPileUpTool.h @@ -1,6 +1,6 @@ //Dear emacs, this is -*-c++-*- /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #ifndef LARDIGITIZATION_LARPILEUPTOOL_H @@ -18,7 +18,7 @@ #include "PileUpTools/PileUpToolBase.h" #include "LArDigitization/ILArPileUpTool.h" -#include "AthenaKernel/IAtRndmGenSvc.h" +#include "AthenaKernel/IAthRNGSvc.h" #include "CaloIdentifier/CaloGain.h" @@ -100,10 +100,10 @@ class LArPileUpTool : virtual public ILArPileUpTool, public PileUpToolBase StatusCode MakeDigit(const Identifier & cellId, - HWIdentifier & ch_id, - const std::vector<std::pair<float,float> > *TimeE, - //const LArDigit * rndm_digit); - const LArDigit * rndm_digit, const std::vector<std::pair<float,float> > *TimeE_DigiHSTruth = nullptr); + HWIdentifier & ch_id, + const std::vector<std::pair<float,float> > *TimeE, + const LArDigit * rndm_digit, CLHEP::HepRandomEngine * engine, + const std::vector<std::pair<float,float> > *TimeE_DigiHSTruth = nullptr); StatusCode ConvertHits2Samples(const Identifier & cellId, HWIdentifier ch_id, @@ -182,7 +182,6 @@ class LArPileUpTool : virtual public ILArPileUpTool, public PileUpToolBase int m_NSamples; // number of samples in Digit unsigned int m_firstSample; // first sample to use for pulse shape for in time energy deposit bool m_usePhase; // use tbin phase to get shape (default = false for Atlas) - std::string m_rndmSvc; // random service name bool m_rndmEvtRun; // use run,event number for random number seeding bool m_useTriggerTime; bool m_RndmEvtOverlay; // Pileup and noise added by overlaying random events @@ -226,8 +225,7 @@ class LArPileUpTool : virtual public ILArPileUpTool, public PileUpToolBase bool m_skipNoHit; - IAtRndmGenSvc* m_AtRndmGenSvc; - CLHEP::HepRandomEngine* m_engine; + ServiceHandle<IAthRNGSvc> m_rndmGenSvc{this, "RndmSvc", "AthRNGSvc", ""}; bool m_doDigiTruth; diff --git a/LArCalorimeter/LArDigitization/python/LArDigitizationConfig.py b/LArCalorimeter/LArDigitization/python/LArDigitizationConfig.py index 5fc80db22d07b5232ed4f6843f668793044b3d8c..b82b8ac9dfb9436baadeb63b952a941d3c382b6a 100644 --- a/LArCalorimeter/LArDigitization/python/LArDigitizationConfig.py +++ b/LArCalorimeter/LArDigitization/python/LArDigitizationConfig.py @@ -81,8 +81,6 @@ def getLArPileUpTool(name='LArPileUpTool', **kwargs): ## useLArFloat()=True,isOv protectedInclude("LArConditionsCommon/LArConditionsCommon_MC_jobOptions.py") from Digitization.DigitizationFlags import digitizationFlags kwargs.setdefault('NoiseOnOff', digitizationFlags.doCaloNoise.get_Value() ) - kwargs.setdefault('RndmSvc', digitizationFlags.rndmSvc.get_Value() ) - digitizationFlags.rndmSeedList.addSeed("LArDigitization", 1234, 5678 ) kwargs.setdefault('DoDigiTruthReconstruction',digitizationFlags.doDigiTruth()) if digitizationFlags.doXingByXingPileUp(): diff --git a/LArCalorimeter/LArDigitization/share/LArDigitization_G4_jobOptions.py b/LArCalorimeter/LArDigitization/share/LArDigitization_G4_jobOptions.py index af6cc8237d2a4f90b098891dfa712e9118a330da..4f33dbea3c7b7a7cbf703def129a45dfdb9b7836 100755 --- a/LArCalorimeter/LArDigitization/share/LArDigitization_G4_jobOptions.py +++ b/LArCalorimeter/LArDigitization/share/LArDigitization_G4_jobOptions.py @@ -34,14 +34,6 @@ topSequence += digitmaker1 digitmaker1.Nsamples = LArNSamples # Calorimeter Noise digitmaker1.NoiseOnOff = jobproperties.Digitization.doCaloNoise.get_Value() -# rndm service -#digitmaker1.RndmSvc = jobproperties.Digitization.digitizationRndmSvc.get_Value() -digitmaker1.RndmSvc = jobproperties.Digitization.rndmSvc.get_Value() -if LArDigitUseOldSeed: - digitmaker1.UseRndmEvtRun = TRUE -else: -# new random seed initialization - jobproperties.Digitization.rndmSeedList.addSeed("LArDigitization", 1234, 5678 ) # ADC2MeVTool from LArRecUtils.LArADC2MeVToolDefault import LArADC2MeVToolDefault diff --git a/LArCalorimeter/LArDigitization/src/LArPileUpTool.cxx b/LArCalorimeter/LArDigitization/src/LArPileUpTool.cxx index 16d46839f4399e038fbaacbc0d894fe3be1e9835..e470fa540d3e6976f8c662944d460beace87011d 100755 --- a/LArCalorimeter/LArDigitization/src/LArPileUpTool.cxx +++ b/LArCalorimeter/LArDigitization/src/LArPileUpTool.cxx @@ -29,6 +29,9 @@ #include "PileUpTools/PileUpMergeSvc.h" #include "EventInfoUtils/EventIDFromStore.h" +#include "AthenaKernel/RNGWrapper.h" +#include "CLHEP/Random/RandomEngine.h" + #include <CLHEP/Random/Randomize.h> using CLHEP::RandFlat; @@ -47,8 +50,6 @@ LArPileUpTool::LArPileUpTool(const std::string& type, const std::string& name, c m_larhec_id(nullptr), m_larfcal_id(nullptr), m_laronline_id(nullptr), - m_AtRndmGenSvc(nullptr), - m_engine(nullptr), m_nhit_tot(0), m_trigtime(0), m_n_cells(0), @@ -98,7 +99,6 @@ LArPileUpTool::LArPileUpTool(const std::string& type, const std::string& name, c m_NSamples = 5; m_firstSample = 0; m_usePhase = false; - m_rndmSvc = "AtRndmGenSvc"; m_rndmEvtRun = false; m_RndmEvtOverlay = false; m_isMcOverlay = false; @@ -158,7 +158,6 @@ LArPileUpTool::LArPileUpTool(const std::string& type, const std::string& name, c declareProperty("Nsamples",m_NSamples,"Number of ADC samples (default=5)"); declareProperty("firstSample",m_firstSample,"First sample to use for the shape for in-time signal"); declareProperty("UsePhase",m_usePhase,"use 1ns binned pulse shape (default=false)"); - declareProperty("RndmSvc",m_rndmSvc,"Random number service for LAr digitization"); declareProperty("UseRndmEvtRun",m_rndmEvtRun,"Use Run and Event number to seed rndm number (default=false)"); declareProperty("MaskingTool",m_maskingTool,"Tool handle for dead channel masking"); declareProperty("BadFebKey",m_badFebKey,"Key of BadFeb object in ConditionsStore"); @@ -384,25 +383,7 @@ StatusCode LArPileUpTool::initialize() m_triggerTimeTool.disable(); } -// initialize random number service - if ( m_NoiseOnOff || m_addPhase || m_roundingNoNoise) { - static const bool CREATEIFNOTTHERE(true); - sc = service(m_rndmSvc, m_AtRndmGenSvc, CREATEIFNOTTHERE); - if (!sc.isSuccess() || 0 == m_AtRndmGenSvc) { - ATH_MSG_ERROR(" Unable to initialize AtRndmGenSvc"); - return StatusCode::FAILURE; - } - else { - ATH_MSG_INFO(" Found random number service " << m_rndmSvc); - } - if (!m_rndmEvtRun) { - m_engine = m_AtRndmGenSvc->GetEngine("LArDigitization"); - if (m_engine==0) { - ATH_MSG_ERROR(" Could find find random engine LArDigitization "); - return StatusCode::FAILURE; - } - } - } + ATH_CHECK(m_rndmGenSvc.retrieve()); if (m_NSamples>32) { ATH_MSG_WARNING(" Cannot do more than 32 samples: NSamples reset to 32 "); @@ -482,27 +463,6 @@ StatusCode LArPileUpTool::prepareEvent(unsigned int /*nInputEvents */) if (!m_useMBTime) m_energySum_DigiHSTruth.resize(m_hitmap_DigiHSTruth->GetNbCells(),0.); } - - // if noise on, get random number engine and initialize with well defined seeds - if (m_NoiseOnOff ||m_addPhase) { - //if use run-event number for seed - if (m_rndmEvtRun) { - const EventIDBase* evid = EventIDFromStore( evtStore() ); - if( evid ) { - const int iSeedNumber = evid->event_number()+1; - const int iRunNumber = evid->run_number(); - ATH_MSG_DEBUG(" Run/Event " << evid->run_number() << " " << evid->event_number()); - ATH_MSG_DEBUG(" iSeedNumber,iRunNumber " << iSeedNumber << " " << iRunNumber); - m_engine = m_AtRndmGenSvc->setOnDefinedSeeds(iSeedNumber,iRunNumber,this->name()); - } - else { - ATH_MSG_ERROR(" can not retrieve event info. Dummy rndm initialization..."); - int iSeedNumber=1; - m_engine = m_AtRndmGenSvc->setOnDefinedSeeds(iSeedNumber,this->name()); - } - } - } - // get the trigger time if requested m_trigtime=0; @@ -511,9 +471,12 @@ StatusCode LArPileUpTool::prepareEvent(unsigned int /*nInputEvents */) ATH_MSG_DEBUG(" Trigger time used : " << m_trigtime); } + ATHRNG::RNGWrapper* rngWrapper = m_rndmGenSvc->getEngine(this); + rngWrapper->setSeed( name(), Gaudi::Hive::currentContext() ); + // add random phase (i.e subtract it from trigtime) if (m_addPhase) { - m_trigtime = m_trigtime - (m_phaseMin + (m_phaseMax-m_phaseMin)*RandFlat::shoot(m_engine) ); + m_trigtime = m_trigtime - (m_phaseMin + (m_phaseMax-m_phaseMin)*RandFlat::shoot(*rngWrapper) ); } // @@ -878,6 +841,9 @@ StatusCode LArPileUpTool::mergeEvent() const std::vector<std::pair<float,float> >* TimeE; const std::vector<std::pair<float,float> >* TimeE_DigiHSTruth = nullptr; + ATHRNG::RNGWrapper* rngWrapper = m_rndmGenSvc->getEngine(this); + CLHEP::HepRandomEngine * engine = *rngWrapper; + for( ; it!=it_end;++it) // now loop on cells { hitlist = m_hitmap->GetCell(it); @@ -903,7 +869,7 @@ StatusCode LArPileUpTool::mergeEvent() // MakeDigit called if in no overlay mode or // if in overlay mode and random digit exists if( (!m_RndmEvtOverlay) || (m_RndmEvtOverlay && digit) ) { - if ( this->MakeDigit(cellID, ch_id,TimeE, digit, TimeE_DigiHSTruth) + if ( this->MakeDigit(cellID, ch_id,TimeE, digit, engine, TimeE_DigiHSTruth) == StatusCode::FAILURE ) return StatusCode::FAILURE; } } @@ -1907,7 +1873,8 @@ void LArPileUpTool::cross_talk(const IdentifierHash& hashId, StatusCode LArPileUpTool::MakeDigit(const Identifier & cellId, HWIdentifier & ch_id, const std::vector<std::pair<float,float> >* TimeE, - const LArDigit * rndmEvtDigit, const std::vector<std::pair<float,float> >* TimeE_DigiHSTruth) + const LArDigit * rndmEvtDigit, CLHEP::HepRandomEngine * engine, + const std::vector<std::pair<float,float> >* TimeE_DigiHSTruth) { bool createDigit_DigiHSTruth = true; @@ -2154,7 +2121,7 @@ StatusCode LArPileUpTool::MakeDigit(const Identifier & cellId, // Sqrt of noise covariance matrix const std::vector<float>& CorGen=autoCorrNoise->autoCorrSqrt(cellId,igain); - RandGaussZiggurat::shootArray(m_engine,m_NSamples,m_Rndm,0.,1.); + RandGaussZiggurat::shootArray(engine,m_NSamples,m_Rndm,0.,1.); int index; for (int i=0;i<m_NSamples;i++) { @@ -2209,7 +2176,7 @@ StatusCode LArPileUpTool::MakeDigit(const Identifier & cellId, else { if (m_roundingNoNoise) { - float flatRndm = RandFlat::shoot(m_engine); + float flatRndm = RandFlat::shoot(engine); xAdc = m_Samples[i]*energy2adc + Pedestal + flatRndm; if(m_doDigiTruth) { xAdc_DigiHSTruth = m_Samples_DigiHSTruth[i]*energy2adc + Pedestal + flatRndm; diff --git a/LumiBlock/LumiBlockComps/LumiBlockComps/LumiBlockMuTool.h b/LumiBlock/LumiBlockComps/LumiBlockComps/LumiBlockMuTool.h index 7065533b253c6acbbc5ccb76668d1cdac5a2ea66..a71aff9d869c33d715339b4231ccfb4ae1d7f73c 100644 --- a/LumiBlock/LumiBlockComps/LumiBlockComps/LumiBlockMuTool.h +++ b/LumiBlock/LumiBlockComps/LumiBlockComps/LumiBlockMuTool.h @@ -14,12 +14,14 @@ #include "AthenaBaseComps/AthAlgTool.h" #include "GaudiKernel/ToolHandle.h" +#include "StoreGate/ReadHandleKey.h" #include "LumiBlockComps/ILumiBlockMuTool.h" #include "LumiBlockComps/ILuminosityTool.h" -#include <string> +#include "xAODEventInfo/EventInfo.h" +#include <string> // Usually this will be called to retrieve the mu value directly from EventInfo // For data which doesn't have this (or to write it there in the first place) @@ -47,6 +49,8 @@ class LumiBlockMuTool: public AthAlgTool, virtual public ILumiBlockMuTool { private: ToolHandle<ILuminosityTool> m_lumiTool; + SG::ReadHandleKey<xAOD::EventInfo> m_eventInfoKey{this,"EventInfoKey","EventInfo","RHK for EventInfo"}; + // Take MC mu from lumi block number instead of EventInfo? bool m_MCLumiBlockHack; // Default is FALSE diff --git a/LumiBlock/LumiBlockComps/src/LumiBlockMuTool.cxx b/LumiBlock/LumiBlockComps/src/LumiBlockMuTool.cxx index 7b2736b536d73cea154366ae93ebfeada7586fe2..1951063077f3b022bcefd1e73045f5a9f02cd9a2 100644 --- a/LumiBlock/LumiBlockComps/src/LumiBlockMuTool.cxx +++ b/LumiBlock/LumiBlockComps/src/LumiBlockMuTool.cxx @@ -4,11 +4,9 @@ #include "LumiBlockComps/LumiBlockMuTool.h" -#include "EventInfo/EventID.h" -#include "EventInfo/EventInfo.h" -#include "EventInfo/EventType.h" - -#include "AthenaKernel/errorcheck.h" +//#include "EventInfo/EventID.h" +//#include "EventInfo/EventInfo.h" +//#include "EventInfo/EventType.h" //-------------------------------------------------- @@ -28,6 +26,7 @@ StatusCode LumiBlockMuTool::initialize() { ATH_MSG_DEBUG("LumiBlockMuTool::initialize() begin"); + ATH_CHECK(m_eventInfoKey.initialize()); // Nothing else to do if not reading from DB if (!m_useDB) @@ -50,9 +49,7 @@ LumiBlockMuTool::finalize() float LumiBlockMuTool::actualInteractionsPerCrossing() const { - // Get eventInfo object - const EventInfo* eventInfo; - CHECK(evtStore()->retrieve(eventInfo), 0); + SG::ReadHandle<xAOD::EventInfo> eventInfo(m_eventInfoKey); // Take value from DB? if (m_useDB) { @@ -60,17 +57,18 @@ LumiBlockMuTool::actualInteractionsPerCrossing() const { if (m_lumiTool->muToLumi() > 0.) mu = m_lumiTool->lbLuminosityPerBCID()/m_lumiTool->muToLumi(); - ATH_MSG_DEBUG("From DB, LB " << eventInfo->event_ID()->lumi_block() << " bcid " << eventInfo->event_ID()->bunch_crossing_id() << " -> " << mu); + ATH_MSG_DEBUG("From DB, LB " << eventInfo->lumiBlock() << " bcid " << eventInfo->bcid() << " -> " << mu); return mu; } // Read MC data from LB number? - if (eventInfo->event_type()->test(EventType::IS_SIMULATION)) { + + if (eventInfo->eventType(xAOD::EventInfo::IS_SIMULATION)) { if (m_MCLumiBlockHack) { ATH_MSG_DEBUG("Returning lumi block as mu for MC event "); - return eventInfo->event_ID()->lumi_block() % 100; // Never greater than 100 according to Ayana + return eventInfo->lumiBlock() % 100; // Never greater than 100 according to Ayana } // Try reading from eventInfo, but fall back if less than zero @@ -79,7 +77,7 @@ LumiBlockMuTool::actualInteractionsPerCrossing() const { if ( eventInfo->actualInteractionsPerCrossing() >= 0) { return eventInfo->actualInteractionsPerCrossing(); } else { - return eventInfo->event_ID()->lumi_block() % 100; + return eventInfo->lumiBlock() % 100; } } @@ -94,23 +92,21 @@ LumiBlockMuTool::averageInteractionsPerCrossing() const{ // Already set by callback if using DB if (m_useDB) return m_lumiTool->lbAverageInteractionsPerCrossing(); - // Otherwise get from EventInfo - const EventInfo* eventInfo; - CHECK(evtStore()->retrieve(eventInfo), 0); + SG::ReadHandle<xAOD::EventInfo> eventInfo(m_eventInfoKey); // Read MC data from LB number? - if (eventInfo->event_type()->test(EventType::IS_SIMULATION)) { + if (eventInfo->eventType(xAOD::EventInfo::IS_SIMULATION)) { if (m_MCLumiBlockHack) { ATH_MSG_DEBUG("Returning lumi block as mu for MC event "); - return eventInfo->event_ID()->lumi_block() % 100; + return eventInfo->lumiBlock() % 100; } // Try reading from eventInfo, but fall back if zero if ( eventInfo->averageInteractionsPerCrossing() > 0) { return eventInfo->averageInteractionsPerCrossing(); } else { - return eventInfo->event_ID()->lumi_block() % 100; + return eventInfo->lumiBlock() % 100; } } diff --git a/MuonSpectrometer/MuonDigitization/CSC_Digitization/CMakeLists.txt b/MuonSpectrometer/MuonDigitization/CSC_Digitization/CMakeLists.txt index 016183519c99cd7643a4f59aad399ec7b7d94405..9500ba5150ae2c15a2637a063069aaaa82f6064a 100644 --- a/MuonSpectrometer/MuonDigitization/CSC_Digitization/CMakeLists.txt +++ b/MuonSpectrometer/MuonDigitization/CSC_Digitization/CMakeLists.txt @@ -15,7 +15,6 @@ atlas_depends_on_subdirs( PUBLIC MuonSpectrometer/MuonCalib/CscCalib/CscCalibTools MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry MuonSpectrometer/MuonDigitContainer - MuonSpectrometer/MuonDigitization/MuonDigToolInterfaces MuonSpectrometer/MuonIdHelpers MuonSpectrometer/MuonSimData MuonSpectrometer/MuonSimEvent diff --git a/MuonSpectrometer/MuonDigitization/CSC_Digitization/CSC_Digitization/CscDigitBuilder.h b/MuonSpectrometer/MuonDigitization/CSC_Digitization/CSC_Digitization/CscDigitBuilder.h index 89f8822a5db3371b6e40a09b6efaa43309496560..ff51b5755548adb5459eb4ace742881dfc311978 100644 --- a/MuonSpectrometer/MuonDigitization/CSC_Digitization/CSC_Digitization/CscDigitBuilder.h +++ b/MuonSpectrometer/MuonDigitization/CSC_Digitization/CSC_Digitization/CscDigitBuilder.h @@ -1,14 +1,9 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ -#ifndef MUONDIGITIZATION_CSCDIGITBUILDER_H -#define MUONDIGITIZATION_CSCDIGITBUILDER_H - -#include "GaudiKernel/ToolHandle.h" -#include "AthenaBaseComps/AthAlgorithm.h" - -class IMuonDigitizationTool; +#ifndef CSC_DIGITIZATION_CSCDIGITBUILDER_H +#define CSC_DIGITIZATION_CSCDIGITBUILDER_H // Author: Ketevi A. Assamagan // BNL, October 27, 2003 @@ -20,20 +15,27 @@ class IMuonDigitizationTool; // loop over the digit and build the digit container // store the digits in StoreGate +#include "GaudiKernel/ToolHandle.h" +#include "AthenaBaseComps/AthAlgorithm.h" + +class IPileUpTool; + class CscDigitBuilder : public AthAlgorithm { - public: +public: + /** Constructor with parameters */ CscDigitBuilder(const std::string& name, ISvcLocator* pSvcLocator); - ~CscDigitBuilder(); - - StatusCode initialize(); - StatusCode execute(); - StatusCode finalize(); - private: + /** Destructor */ + virtual ~CscDigitBuilder() = default; + + /** Basic algorithm methods */ + virtual StatusCode initialize() override final; + virtual StatusCode execute() override final; - ToolHandle<IMuonDigitizationTool> m_digTool; +private: + ToolHandle<IPileUpTool> m_digTool{this, "DigitizationTool", "CscDigitizationTool", "CscDigitizationTool name"}; }; -#endif // MUONDIGITIZATION_CSCDIGITBUILDER_H +#endif // CSC_DIGITIZATION_CSCDIGITBUILDER_H diff --git a/MuonSpectrometer/MuonDigitization/CSC_Digitization/CSC_Digitization/CscDigitizationTool.h b/MuonSpectrometer/MuonDigitization/CSC_Digitization/CSC_Digitization/CscDigitizationTool.h index 23fa4f6ea3e2af21d25a0f69e6fdbf6ce8dac572..3471731333f68eac96b0655d77ebb2df75beb3d7 100644 --- a/MuonSpectrometer/MuonDigitization/CSC_Digitization/CSC_Digitization/CscDigitizationTool.h +++ b/MuonSpectrometer/MuonDigitization/CSC_Digitization/CSC_Digitization/CscDigitizationTool.h @@ -3,9 +3,7 @@ */ #ifndef MUONDIGITIZATION_CSCDIGITIZATIONTOOL_H -#define MUONDIGITIZATION_CSCDIGITIZATIONTOOL_H - -#include "MuonDigToolInterfaces/IMuonDigitizationTool.h" +#define MUONDIGITIZATION_CSCDIGITIZATIONTOOL_H #include "GaudiKernel/ToolHandle.h" #include "AthenaKernel/IAthRNGSvc.h" @@ -40,75 +38,69 @@ class PileUpMergeSvc; // loop over the digit and build the digit container // store the digits in StoreGate -class CscDigitizationTool : virtual public IMuonDigitizationTool, public PileUpToolBase { +class CscDigitizationTool : public PileUpToolBase { typedef std::vector<CscSimData::Deposit> deposits; typedef std::map<IdentifierHash,std::pair<double,double> > csc_map; typedef std::map<IdentifierHash,std::vector<float> > csc_newmap; - - + + public: - + CscDigitizationTool(const std::string& type, const std::string& name, const IInterface* pIID); ~CscDigitizationTool(); - - virtual StatusCode initialize() override final; - virtual StatusCode finalize() override final; + virtual StatusCode initialize() override final; // PileUpTool methods... ///called at the end of the subevts loop. Not (necessarily) able to access subEvents virtual StatusCode mergeEvent() override final; - + ///called for each active bunch-crossing to process current subEvents. bunchXing is in ns virtual StatusCode processBunchXing( - int bunchXing, - SubEventIterator bSubEvents, - SubEventIterator eSubEvents - ) override final; + int bunchXing, + SubEventIterator bSubEvents, + SubEventIterator eSubEvents + ) override final; /// return false if not interested in certain xing times (in ns) /// implemented by default in PileUpToolBase as FirstXing<=bunchXing<=LastXing // virtual bool toProcess(int bunchXing) const; virtual StatusCode prepareEvent(unsigned int /*nInputEvents*/) override final; - + /// alternative interface which uses the PileUpMergeSvc to obtain /// all the required SubEvents. virtual StatusCode processAllSubEvents() override final; - /// Used by CscDigitBuilder. Just calls processAllSubEvents - - /// leaving for back-compatibility (IMuonDigitizationTool) - virtual StatusCode digitize() override final; - public: //possibly these should be private? StatusCode FillCollectionWithNewDigitEDM(csc_newmap& data_SampleMap, //csc_newmap& data_SampleMapOddPhase, std::map<IdentifierHash,deposits>& myDeposits,bool phaseToSet, - CscDigitContainer* cscDigits,CscSimDataCollection* cscSimData); + CscDigitContainer* cscDigits,CscSimDataCollection* cscSimData); StatusCode FillCollectionWithOldDigitEDM(csc_map& data_map, std::map<IdentifierHash,deposits>& myDeposits,CscDigitContainer* cscDigits,CscSimDataCollection* cscSimData); StatusCode CoreDigitization(CscDigitContainer* cscDigits,CscSimDataCollection* cscSimData, CLHEP::HepRandomEngine* rndmEngine); - - private: - - ToolHandle<ICscCalibTool> m_pcalib; + +private: + + PublicToolHandle<ICscCalibTool> m_pcalib{this, "cscCalibTool", "CscCalibTool", ""}; SG::WriteHandleKey<CscSimDataCollection> m_cscSimDataCollectionWriteHandleKey{this,"CSCSimDataCollectionOutputName","CSC_SDO","WriteHandleKey for Output CscSimDataCollection"}; SG::WriteHandleKey<CscDigitContainer> m_cscDigitContainerKey{this,"OutputObjectName","CSC_DIGITS","CSC digit container object"}; //SG::WriteHandle<CscDigitContainer> m_container; //SG::WriteHandle<CscSimDataCollection> m_CSCSimDataCollectionWriteHandle; - const MuonGM::MuonDetectorManager * m_geoMgr; - CSC_Digitizer * m_cscDigitizer; + const MuonGM::MuonDetectorManager * m_geoMgr{nullptr}; + CSC_Digitizer * m_cscDigitizer{nullptr}; - const CscIdHelper * m_cscIdHelper; + const CscIdHelper * m_cscIdHelper{nullptr}; double m_pedestal; bool m_maskBadChannel; double m_amplification; - + //pile-up - TimedHitCollection<CSCSimHit>* m_thpcCSC; // the hits + TimedHitCollection<CSCSimHit>* m_thpcCSC{nullptr}; // the hits std::list<CSCSimHitCollection*> m_cscHitCollList; // only for pileup events.. //pileup truth veto bool m_includePileUpTruth; @@ -121,22 +113,22 @@ public: //possibly these should be private? double m_driftVelocity; double m_electronEnergy; bool m_NInterFixed; - unsigned int m_run; - unsigned int m_evt; + unsigned int m_run{0}; + unsigned int m_evt{0}; /////////////////////////////////////////////////////////////////// // Access to the event methods: /////////////////////////////////////////////////////////////////// private: - + // Get next event and extract collection of hit collections: StatusCode getNextEvent(); - -protected: - - PileUpMergeSvc *m_mergeSvc; // Pile up service - std::string m_inputObjectName; // name of the input objects - + +protected: + + PileUpMergeSvc *m_mergeSvc{nullptr}; // Pile up service + std::string m_inputObjectName{"CSC_Hits"}; // name of the input objects + ServiceHandle <IAthRNGSvc> m_rndmSvc{this, "RndmSvc", "AthRNGSvc", ""}; // Random number service CLHEP::HepRandomEngine *m_rndmEngine; // Random number engine used - not init in SiDigitization std::string m_rndmEngineName;// name of random engine diff --git a/MuonSpectrometer/MuonDigitization/CSC_Digitization/src/CscDigitBuilder.cxx b/MuonSpectrometer/MuonDigitization/CSC_Digitization/src/CscDigitBuilder.cxx index d5034e8431735c16d1c184f1980ac5dc04db905d..cc1bae3dd5fa669a8339c59e6ce24f517bea4d78 100644 --- a/MuonSpectrometer/MuonDigitization/CSC_Digitization/src/CscDigitBuilder.cxx +++ b/MuonSpectrometer/MuonDigitization/CSC_Digitization/src/CscDigitBuilder.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ // Author: Ketevi A. Assamagan @@ -7,44 +7,23 @@ // Digitization algorithm for the CSC hits -#include "MuonDigToolInterfaces/IMuonDigitizationTool.h" #include "CSC_Digitization/CscDigitBuilder.h" +#include "PileUpTools/IPileUpTool.h" -CscDigitBuilder::CscDigitBuilder(const std::string& name, - ISvcLocator* pSvcLocator) - : AthAlgorithm(name, pSvcLocator), - m_digTool("CscDigitizationTool", this ) +CscDigitBuilder::CscDigitBuilder(const std::string& name, + ISvcLocator* pSvcLocator) + : AthAlgorithm(name, pSvcLocator) { - declareProperty("DigitizationTool", m_digTool); -} - -CscDigitBuilder::~CscDigitBuilder() { - } StatusCode CscDigitBuilder::initialize() { - // intitialize store gate active store - if (m_digTool.retrieve().isFailure()) { - ATH_MSG_FATAL ( "Could not retrieve CSC Digitization Tool!" ); - return StatusCode::FAILURE; - } - ATH_MSG_DEBUG ( "Retrieved CSC Digitization Tool." ); + ATH_CHECK(m_digTool.retrieve()); + ATH_MSG_DEBUG ( "Retrieved CscDigitizationTool (" << m_digTool->name() << ")." ); return StatusCode::SUCCESS; } StatusCode CscDigitBuilder::execute() { - ATH_MSG_DEBUG ( "in execute()" ); - - return m_digTool->digitize(); + return m_digTool->processAllSubEvents(); } - -StatusCode CscDigitBuilder::finalize() { - - ATH_MSG_DEBUG ( "finalize." ); - - return StatusCode::SUCCESS; -} - - diff --git a/MuonSpectrometer/MuonDigitization/CSC_Digitization/src/CscDigitizationTool.cxx b/MuonSpectrometer/MuonDigitization/CSC_Digitization/src/CscDigitizationTool.cxx index 625cbf341951322beaa71f9666700b9cae0e8a60..0a35f25695c44f3cfbe3123c4f17c08ffbe788ac 100644 --- a/MuonSpectrometer/MuonDigitization/CSC_Digitization/src/CscDigitizationTool.cxx +++ b/MuonSpectrometer/MuonDigitization/CSC_Digitization/src/CscDigitizationTool.cxx @@ -5,7 +5,7 @@ // Author: Ketevi A. Assamagan // BNL, October 27 2003 // Digitization algorithm for the CSC hits -#include "MuonReadoutGeometry/MuonDetectorManager.h" +#include "MuonReadoutGeometry/MuonDetectorManager.h" #include "HepMC/GenParticle.h" #include "GeneratorObjects/HepMcParticleLink.h" @@ -29,13 +29,9 @@ static constexpr unsigned int crazyParticleBarcode( std::numeric_limits<int32_t>::max()); // Barcodes at the HepMC level are int -CscDigitizationTool::CscDigitizationTool(const std::string& type,const std::string& name,const IInterface* pIID) - : PileUpToolBase(type, name, pIID), m_pcalib("CscCalibTool") - , m_geoMgr(0), m_cscDigitizer(0), m_cscIdHelper(0), m_thpcCSC(0) - , m_vetoThisBarcode(crazyParticleBarcode), m_run(0), m_evt(0), m_mergeSvc(0) - , m_inputObjectName("CSC_Hits") { - - declareInterface<IMuonDigitizationTool>(this); +CscDigitizationTool::CscDigitizationTool(const std::string& type,const std::string& name,const IInterface* pIID) + : PileUpToolBase(type, name, pIID) + , m_vetoThisBarcode(crazyParticleBarcode) { declareProperty("InputObjectName", m_inputObjectName = "CSC_Hits", "name of the input objects"); declareProperty("pedestal",m_pedestal = 0.0); @@ -43,7 +39,6 @@ CscDigitizationTool::CscDigitizationTool(const std::string& type,const std::stri declareProperty("WindowUpperOffset",m_timeWindowUpperOffset = +25.); declareProperty("isPileUp",m_isPileUp = false); - declareProperty("cscCalibTool", m_pcalib); declareProperty("maskBadChannels", m_maskBadChannel=true); declareProperty("amplification", m_amplification=0.58e5); @@ -55,10 +50,12 @@ CscDigitizationTool::CscDigitizationTool(const std::string& type,const std::stri declareProperty("ParticleBarcodeVeto", m_vetoThisBarcode = crazyParticleBarcode, "Barcode of particle to ignore"); } + CscDigitizationTool::~CscDigitizationTool() { delete m_cscDigitizer; } + StatusCode CscDigitizationTool::initialize() { ATH_MSG_DEBUG ( "Initialized Properties :" ); @@ -82,20 +79,20 @@ StatusCode CscDigitizationTool::initialize() { ATH_MSG_DEBUG ( "Retrieved Active Store Service." ); ATH_CHECK(m_cscSimDataCollectionWriteHandleKey.initialize()); - + // initialize transient detector store and MuonDetDescrManager if ( detStore()->retrieve(m_geoMgr).isFailure() ) { ATH_MSG_FATAL ( "Could not retrieve MuonDetectorManager!" ); return StatusCode::FAILURE; } - else + else ATH_MSG_DEBUG ( "MuonDetectorManager retrieved from StoreGate."); //locate the PileUpMergeSvc and initialize our local ptr - + const bool CREATEIF(true); - if (!(service("PileUpMergeSvc", m_mergeSvc, CREATEIF)).isSuccess() || + if (!(service("PileUpMergeSvc", m_mergeSvc, CREATEIF)).isSuccess() || 0 == m_mergeSvc) { ATH_MSG_ERROR ( "Could not find PileUpMergeSvc" ); return StatusCode::FAILURE; @@ -119,7 +116,7 @@ StatusCode CscDigitizationTool::initialize() { } ICscCalibTool * cscCalibTool = &*(m_pcalib); - + //initialize the CSC digitizer CscHitIdHelper * cscHitHelper = CscHitIdHelper::GetHelper(); m_cscDigitizer = new CSC_Digitizer(cscHitHelper, m_geoMgr, cscCalibTool); @@ -129,7 +126,7 @@ StatusCode CscDigitizationTool::initialize() { m_cscDigitizer->setElectronEnergy (m_electronEnergy); if (m_NInterFixed) m_cscDigitizer->setNInterFixed(); - + if ( m_cscDigitizer->initialize().isFailure() ) { ATH_MSG_FATAL ( "Could not initialize CSC Digitizer!" ); return StatusCode::FAILURE; @@ -149,9 +146,9 @@ StatusCode CscDigitizationTool::initialize() { ATH_MSG_DEBUG("WP Current MSG Level DEBUG ? " << msgLvl(MSG::DEBUG) ); ATH_MSG_DEBUG("WP Current MSG Level VERBOSE ? " << msgLvl(MSG::VERBOSE) ); - + return StatusCode::SUCCESS; - + } // Inherited from PileUpTools @@ -166,11 +163,6 @@ StatusCode CscDigitizationTool::prepareEvent(unsigned int /*nInputEvents*/) { } /////////////////////////////// -StatusCode CscDigitizationTool::digitize() { - return this->processAllSubEvents(); -} -/////////////////////////////// - StatusCode CscDigitizationTool::processAllSubEvents() { ATH_MSG_DEBUG ( "in processAllSubEvents()" ); @@ -186,12 +178,12 @@ StatusCode CscDigitizationTool::processAllSubEvents() { SG::WriteHandle<CscSimDataCollection> cscSimData(m_cscSimDataCollectionWriteHandleKey); ATH_CHECK(cscSimData.record(std::make_unique<CscSimDataCollection>())); - //merging of the hit collection in getNextEvent method + //merging of the hit collection in getNextEvent method if (0 == m_thpcCSC ) { StatusCode sc = getNextEvent(); if (StatusCode::FAILURE == sc) { - ATH_MSG_INFO ( "There are no CSC hits in this event" ); + ATH_MSG_INFO ( "There are no CSC hits in this event" ); return sc; // there are no hits in this event } } @@ -203,21 +195,21 @@ StatusCode CscDigitizationTool::processAllSubEvents() { } StatusCode CscDigitizationTool::CoreDigitization(CscDigitContainer* cscDigits,CscSimDataCollection* cscSimData, CLHEP::HepRandomEngine* rndmEngine) { - + // get the iterator pairs for this DetEl //iterate over hits const xAOD::EventInfo* pevt = nullptr; ATH_CHECK( evtStore()->retrieve(pevt) ); m_evt = pevt->eventNumber(); m_run = pevt->runNumber(); - - + + std::map <IdentifierHash,deposits> myDeposits; csc_map data_map; csc_newmap data_SampleMap, data_SampleMapOddPhase; - - TimedHitCollection< CSCSimHit >::const_iterator i, e; - + + TimedHitCollection< CSCSimHit >::const_iterator i, e; + // Perform null check on m_thpcCSC if(!m_thpcCSC) { ATH_MSG_ERROR ( "m_thpcCSC is null" ); @@ -225,19 +217,19 @@ StatusCode CscDigitizationTool::CoreDigitization(CscDigitContainer* cscDigits,Cs } while( m_thpcCSC->nextDetectorElement(i, e) ) { - + // Loop over the hits: while (i != e) { - + TimedHitPtr<CSCSimHit> phit(*i++); const CSCSimHit& hit(*phit); // const HepMcParticleLink McLink = HepMcParticleLink(phit->trackNumber(),phit.eventId()); // const HepMC::GenParticle* genPart = McLink.cptr(); // some times empty pointer returned - + ATH_MSG_DEBUG(hit.print()); - + double globalHitTime(hitTime(phit)); double bunchTime(globalHitTime - hit.globalTime()); @@ -253,8 +245,8 @@ StatusCode CscDigitizationTool::CoreDigitization(CscDigitContainer* cscDigits,Cs : m_cscDigitizer->digitize_hit(&hit, hashVec, data_map, rndmEngine); if (status.isFailure()) { - ATH_MSG_ERROR ( "CSC Digitizer Failed to digitize a hit!" ); - return status; + ATH_MSG_ERROR ( "CSC Digitizer Failed to digitize a hit!" ); + return status; } std::vector<IdentifierHash>::const_iterator vecBeg = hashVec.begin(); @@ -288,7 +280,7 @@ StatusCode CscDigitizationTool::CoreDigitization(CscDigitContainer* cscDigits,Cs for (; vecBeg != vecEnd; vecBeg++) { CscSimData::Deposit deposit(HepMcParticleLink(phit->trackNumber(),phit.eventId()), CscMcData(energy, ypos, zpos)); - myDeposits[(*vecBeg)].push_back(deposit); + myDeposits[(*vecBeg)].push_back(deposit); } hashVec.clear(); } @@ -298,8 +290,8 @@ StatusCode CscDigitizationTool::CoreDigitization(CscDigitContainer* cscDigits,Cs if (m_thpcCSC) { delete m_thpcCSC; m_thpcCSC=0; - } - + } + // now loop over the digit map // build the digits // build the digit collections and record them @@ -314,11 +306,11 @@ StatusCode CscDigitizationTool::CoreDigitization(CscDigitContainer* cscDigits,Cs } else return FillCollectionWithOldDigitEDM(data_map, myDeposits, cscDigits, cscSimData); -} - +} + StatusCode CscDigitizationTool:: -FillCollectionWithNewDigitEDM(csc_newmap& data_SampleMap, +FillCollectionWithNewDigitEDM(csc_newmap& data_SampleMap, std::map<IdentifierHash,deposits>& myDeposits, bool phaseToSet, CscDigitContainer* cscDigits,CscSimDataCollection* cscSimData ) { @@ -332,7 +324,7 @@ FillCollectionWithNewDigitEDM(csc_newmap& data_SampleMap, csc_newmap::const_iterator cscMap = data_SampleMap.begin(); csc_newmap::const_iterator cscMapEnd = data_SampleMap.end(); - + for (; cscMap != cscMapEnd; ++cscMap) { Identifier digitId; IdentifierHash hashId = (*cscMap).first; @@ -344,67 +336,67 @@ FillCollectionWithNewDigitEDM(csc_newmap& data_SampleMap, Identifier elementId = m_cscIdHelper->parentID(digitId); IdentifierHash coll_hash; if (m_cscIdHelper->get_hash(elementId, coll_hash, &cscContext)) { - ATH_MSG_ERROR ( "Unable to get CSC hash id from CSC Digit collection " + ATH_MSG_ERROR ( "Unable to get CSC hash id from CSC Digit collection " << "context begin_index = " << cscContext.begin_index() << " context end_index = " << cscContext.end_index() << " the identifier is " ); elementId.show(); - } - + } + - // get the charge + // get the charge double stripCharge = 0.0; double driftTime = 0.0; //if (stripCharge < m_noiseLevel) continue; - - + + const std::vector<float> samples = (*cscMap).second; // csc_newmap::iterator ii= data_SampleMapOddPhase.find(hashId); // const std::vector<float> samplesOddPhase = (*ii).second; - - + + // if (msgLvl(MSG::DEBUG)) { unsigned int samplingPhase =0; double samplingTime = m_pcalib->getSamplingTime(); m_pcalib->findCharge(samplingTime, samplingPhase, samples, stripCharge, driftTime); // } driftTime += m_pcalib->getLatency(); - + /** mask this readout channel if it is a dead channel or a hot channel */ if ( !m_pcalib->isGood( hashId ) && m_maskBadChannel ) { stripCharge = 0.0; - driftTime = 2*m_timeWindowUpperOffset; + driftTime = 2*m_timeWindowUpperOffset; } - + int zsec = m_cscIdHelper->stationEta(digitId); int phisec = m_cscIdHelper->stationPhi(digitId); int istation = m_cscIdHelper->stationName(digitId) - 49; - + int wlay = m_cscIdHelper->wireLayer(digitId); int measphi = m_cscIdHelper->measuresPhi(digitId); int istrip = m_cscIdHelper->strip(digitId); - + int sector = zsec*(2*phisec-istation+1); - + auto depositsForHash = myDeposits.find(hashId); if (depositsForHash != myDeposits.end() && depositsForHash->second.size()) { depositsForHash->second[0].second.setCharge(stripCharge); cscSimData->insert ( std::make_pair(digitId, CscSimData(depositsForHash->second,0)) ); } - + // fill the digit collections in StoreGate // CscDigit * newDigit = new CscDigit(digitId, int(stripCharge+1) ); // Now, we pass driftTime as well as stripCharge. // SimHIT time should be added to distinguish prompt muons from secondary.... 11/19/2009 WP - + // CscDigit * newDigit = new CscDigit(digitId, samples); // CscDigit * newDigitOddPhase = new CscDigit(digitId, samplesOddPhase); ATH_MSG_DEBUG ( "NEWDigit sec:measphi:wlay:istr:chg:t(w/latency) " - << m_run << " " << m_evt << " " << m_cscIdHelper->show_to_string(digitId,&context) + << m_run << " " << m_evt << " " << m_cscIdHelper->show_to_string(digitId,&context) << " hash:eleId = " << hashId << " " << elementId << " " << prevId << " " << sector << " " << measphi << " " << wlay << " " << istrip << " " - << int(stripCharge+1) << " " << float(driftTime) + << int(stripCharge+1) << " " << float(driftTime) << " phase=" << phaseToSet << " samps: " << samples[0] << " " << samples[1] << " " << samples[2] << " " << samples[3] @@ -422,22 +414,22 @@ FillCollectionWithNewDigitEDM(csc_newmap& data_SampleMap, // const std::vector<float> samplesToPut // = (phaseToSet) ? samplesOddPhase : samples ; - + CscDigit * newDigit = new CscDigit(digitId, samples); newCollection->push_back(newDigit); - if ( cscDigits->addCollection(newCollection, coll_hash).isFailure() ) - ATH_MSG_ERROR ( "Couldn't record CscDigitCollection with key=" << coll_hash + if ( cscDigits->addCollection(newCollection, coll_hash).isFailure() ) + ATH_MSG_ERROR ( "Couldn't record CscDigitCollection with key=" << coll_hash << " in StoreGate!" ); collection = newCollection; - } else { + } else { CscDigitCollection * existingCollection = const_cast<CscDigitCollection*>( it_coll ); if (phaseToSet) existingCollection->set_samplingPhase(); // const std::vector<float> samplesToPut // = (existingCollection->samplingPhase()) ? samplesOddPhase : samples ; - + CscDigit * newDigit = new CscDigit(digitId, samples); existingCollection->push_back(newDigit); @@ -454,7 +446,7 @@ FillCollectionWithNewDigitEDM(csc_newmap& data_SampleMap, if (phaseToSet) collection->set_samplingPhase(); // const std::vector<float> samplesToPut // = (collection->samplingPhase()) ? samplesOddPhase : samples ; - + CscDigit * newDigit = new CscDigit(digitId, samples); collection->push_back(newDigit); @@ -481,66 +473,66 @@ FillCollectionWithOldDigitEDM(csc_map& data_map, std::map<IdentifierHash,deposit ATH_MSG_ERROR ( "cannot get CSC channel identifier from hash " << hashId ); return StatusCode::FAILURE; } - - // get the charge + + // get the charge double stripCharge = 0.0; //double gaus = CLHEP::RandGaussZiggurat::shoot(rndmEngine,0.0,1.0); - + //if (stripCharge < m_noiseLevel) continue; stripCharge = ((*cscMap).second).second + m_pedestal; // + m_noiseLevel*gaus; double driftTime =((*cscMap).second).first; // SimHIT time is added yet 12/03/2009 - + // stripCharge = ((*cscMap).second).stripCharge + m_pedestal; // + m_noiseLevel*gaus; v2 // double driftTime =((*cscMap).second).driftTime0; // for version2 v2 - + /** mask this readout channel if it is a dead channel or a hot channel */ if ( !m_pcalib->isGood( hashId ) && m_maskBadChannel ) { stripCharge = 0.0; - driftTime = 2*m_timeWindowUpperOffset; + driftTime = 2*m_timeWindowUpperOffset; } - - ATH_MSG_VERBOSE ( "CSC Digit Id = " << m_cscIdHelper->show_to_string(digitId,&context) - << " hash = " << hashId + + ATH_MSG_VERBOSE ( "CSC Digit Id = " << m_cscIdHelper->show_to_string(digitId,&context) + << " hash = " << hashId << " charge = " << int (stripCharge+1) ); - + int zsec = m_cscIdHelper->stationEta(digitId); int phisec = m_cscIdHelper->stationPhi(digitId); int istation = m_cscIdHelper->stationName(digitId) - 49; - + int wlay = m_cscIdHelper->wireLayer(digitId); int measphi = m_cscIdHelper->measuresPhi(digitId); int istrip = m_cscIdHelper->strip(digitId); - + int sector = zsec*(2*phisec-istation+1); - + auto depositsForHash = myDeposits.find(hashId); if (depositsForHash != myDeposits.end() && depositsForHash->second.size()) { depositsForHash->second[0].second.setCharge(stripCharge); cscSimData->insert ( std::make_pair(digitId, CscSimData(depositsForHash->second,0)) ); } - + // fill the digit collections in StoreGate // CscDigit * newDigit = new CscDigit(digitId, int(stripCharge+1) ); // Now, we pass driftTime as well as stripCharge. // SimHIT time should be added to distinguish prompt muons from secondary.... 11/19/2009 WP CscDigit * newDigit = new CscDigit(digitId, int(stripCharge+1), float(driftTime) ); Identifier elementId = m_cscIdHelper->parentID(digitId); - + ATH_MSG_DEBUG ( "CSC Digit sector:measphi:wlay:istrip:charge " << m_run << " " << m_evt << " " << sector << " " << measphi << " " << wlay << " " << istrip << " " << int(stripCharge+1) << " " << float(driftTime) << " " << (newDigit->sampleCharges()).size()); - - + + IdentifierHash coll_hash; if (m_cscIdHelper->get_hash(elementId, coll_hash, &cscContext)) { - ATH_MSG_ERROR ( "Unable to get CSC hash id from CSC Digit collection " + ATH_MSG_ERROR ( "Unable to get CSC hash id from CSC Digit collection " << "context begin_index = " << cscContext.begin_index() << " context end_index = " << cscContext.end_index() << " the identifier is " ); elementId.show(); - } - + } + if (prevId != elementId) { auto it_coll = cscDigits->indexFindPtr(coll_hash); if (nullptr == it_coll) { @@ -549,9 +541,9 @@ FillCollectionWithOldDigitEDM(csc_map& data_map, std::map<IdentifierHash,deposit collection = newCollection; StatusCode status = cscDigits->addCollection(collection, coll_hash ); if (status.isFailure()) - ATH_MSG_ERROR ( "Couldn't record CscDigitCollection with key=" << coll_hash + ATH_MSG_ERROR ( "Couldn't record CscDigitCollection with key=" << coll_hash << " in StoreGate!" ); - } else { + } else { CscDigitCollection * existingCollection = const_cast<CscDigitCollection*>( it_coll ); existingCollection->push_back(newDigit); collection = existingCollection; @@ -569,18 +561,10 @@ FillCollectionWithOldDigitEDM(csc_map& data_map, std::map<IdentifierHash,deposit } return StatusCode::SUCCESS; } - -StatusCode CscDigitizationTool::finalize() { - - ATH_MSG_DEBUG ( "finalize." ); - - return StatusCode::SUCCESS; -} - // Get next event and extract collection of hit collections: -StatusCode CscDigitizationTool::getNextEvent() // This is applicable to non-PileUp Event... +StatusCode CscDigitizationTool::getNextEvent() // This is applicable to non-PileUp Event... { // Get the messaging service, print where you are @@ -592,7 +576,7 @@ StatusCode CscDigitizationTool::getNextEvent() // This is applicable to non-Pile //this is a list<pair<time_t, DataLink<CSCSimHitCollection> > > TimedHitCollList hitCollList; - + if (!(m_mergeSvc->retrieveSubEvtsData(m_inputObjectName, hitCollList).isSuccess()) ) { ATH_MSG_ERROR ( "Could not fill TimedHitCollList" ); return StatusCode::FAILURE; @@ -601,14 +585,14 @@ StatusCode CscDigitizationTool::getNextEvent() // This is applicable to non-Pile ATH_MSG_ERROR ( "TimedHitCollList has size 0" ); return StatusCode::FAILURE; } else { - ATH_MSG_DEBUG ( hitCollList.size() - << " CSCSimHitCollections with key " << m_inputObjectName + ATH_MSG_DEBUG ( hitCollList.size() + << " CSCSimHitCollections with key " << m_inputObjectName << " found" ); } - + // create a new hits collection m_thpcCSC = new TimedHitCollection<CSCSimHit>(); - + //now merge all collections into one TimedHitCollList::iterator iColl(hitCollList.begin()); TimedHitCollList::iterator endColl(hitCollList.end()); @@ -635,13 +619,13 @@ StatusCode CscDigitizationTool::processBunchXing(int bunchXing, TimedHitCollList hitCollList; if (!(m_mergeSvc->retrieveSubSetEvtData(m_inputObjectName, hitCollList, bunchXing, - bSubEvents, eSubEvents).isSuccess()) && + bSubEvents, eSubEvents).isSuccess()) && hitCollList.size() == 0) { ATH_MSG_ERROR("Could not fill TimedHitCollList"); return StatusCode::FAILURE; } else { ATH_MSG_VERBOSE(hitCollList.size() << " CSCSimHitCollection with key " << - m_inputObjectName << " found"); + m_inputObjectName << " found"); } TimedHitCollList::iterator iColl(hitCollList.begin()); @@ -654,10 +638,10 @@ StatusCode CscDigitizationTool::processBunchXing(int bunchXing, PileUpTimeEventIndex timeIndex(iColl->first); ATH_MSG_DEBUG("CSCSimHitCollection found with " << hitCollPtr->size() << - " hits"); + " hits"); ATH_MSG_VERBOSE("time index info. time: " << timeIndex.time() - << " index: " << timeIndex.index() - << " type: " << timeIndex.type()); + << " index: " << timeIndex.index() + << " type: " << timeIndex.type()); m_thpcCSC->insert(timeIndex, hitCollPtr); m_cscHitCollList.push_back(hitCollPtr); @@ -694,6 +678,6 @@ StatusCode CscDigitizationTool::mergeEvent() { ++cscHitColl; } m_cscHitCollList.clear(); - + return StatusCode::SUCCESS; } diff --git a/MuonSpectrometer/MuonDigitization/MDT_Digitization/CMakeLists.txt b/MuonSpectrometer/MuonDigitization/MDT_Digitization/CMakeLists.txt index 88bd51002f862637632fdf4b8985ff30898651e8..19caffe8179550a43c51504e79fbe404147e69d1 100644 --- a/MuonSpectrometer/MuonDigitization/MDT_Digitization/CMakeLists.txt +++ b/MuonSpectrometer/MuonDigitization/MDT_Digitization/CMakeLists.txt @@ -21,7 +21,6 @@ atlas_depends_on_subdirs( PUBLIC MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry MuonSpectrometer/MuonDigitContainer MuonSpectrometer/MuonDigitization/MDT_Response - MuonSpectrometer/MuonDigitization/MuonDigToolInterfaces MuonSpectrometer/MuonIdHelpers MuonSpectrometer/MuonSimData MuonSpectrometer/MuonSimEvent diff --git a/MuonSpectrometer/MuonDigitization/MDT_Digitization/MDT_Digitization/MDT_Digitizer.h b/MuonSpectrometer/MuonDigitization/MDT_Digitization/MDT_Digitization/MDT_Digitizer.h index aeb957080b8ec8e3a87098cf70eeb76df9ffb04f..e03a963ada6425f08cb920ef7d5449ab8723f488 100644 --- a/MuonSpectrometer/MuonDigitization/MDT_Digitization/MDT_Digitization/MDT_Digitizer.h +++ b/MuonSpectrometer/MuonDigitization/MDT_Digitization/MDT_Digitization/MDT_Digitizer.h @@ -1,30 +1,30 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ -#ifndef MUONDIGITIZATION_MDT_DIGITIZER_H -#define MUONDIGITIZATION_MDT_DIGITIZER_H +#ifndef MDT_DIGITIZATION_MDT_DIGITIZER_H +#define MDT_DIGITIZATION_MDT_DIGITIZER_H -#include "GaudiKernel/ToolHandle.h" #include "AthenaBaseComps/AthAlgorithm.h" +#include "GaudiKernel/ToolHandle.h" -class IMuonDigitizationTool; +class IPileUpTool; class MDT_Digitizer : public AthAlgorithm { - public: + /** Constructor with parameters */ MDT_Digitizer(const std::string& name, ISvcLocator* pSvcLocator); - ~MDT_Digitizer(); - - StatusCode initialize(); - StatusCode execute(); - StatusCode finalize(); - private: + /** Destructor */ + virtual ~MDT_Digitizer() = default; - ToolHandle<IMuonDigitizationTool> m_digTool; -}; + /** Basic algorithm methods */ + virtual StatusCode initialize() override final; + virtual StatusCode execute() override final; -#endif // MUONDIGITIZATION_MDT_DIGITIZER_H + private: + ToolHandle<IPileUpTool> m_digTool{this, "DigitizationTool", "MdtDigitizationTool", "MdtDigitizationTool name"}; +}; +#endif // MDT_DIGITIZATION_MDT_DIGITIZER_H diff --git a/MuonSpectrometer/MuonDigitization/MDT_Digitization/MDT_Digitization/MdtDigitizationTool.h b/MuonSpectrometer/MuonDigitization/MDT_Digitization/MDT_Digitization/MdtDigitizationTool.h index 780580a5770a0973f795ab069183992c80573897..b58ba14a85c6121a7f765372d3c1419069f0a8ac 100644 --- a/MuonSpectrometer/MuonDigitization/MDT_Digitization/MDT_Digitization/MdtDigitizationTool.h +++ b/MuonSpectrometer/MuonDigitization/MDT_Digitization/MDT_Digitization/MdtDigitizationTool.h @@ -56,7 +56,6 @@ #include "AthenaKernel/IAthRNGSvc.h" #include "CLHEP/Random/RandGaussZiggurat.h" -#include "MuonDigToolInterfaces/IMuonDigitizationTool.h" #include "MuonCondInterface/IMDTConditionsSvc.h" #include "MDT_Digitization/IMDT_DigitizationTool.h" @@ -99,7 +98,7 @@ class MdtCalibrationDbSvc; class MuonSimDataCollection; -class MdtDigitizationTool : virtual public IMuonDigitizationTool, public PileUpToolBase { +class MdtDigitizationTool : public PileUpToolBase { public: MdtDigitizationTool(const std::string& type, const std::string& name, const IInterface* pIID); @@ -124,10 +123,6 @@ class MdtDigitizationTool : virtual public IMuonDigitizationTool, public PileUpT all the required SubEvents. */ virtual StatusCode processAllSubEvents() override final; - /** Just calls processAllSubEvents - leaving for back-compatibility - (IMuonDigitizationTool) */ - StatusCode digitize() override final; - struct GeoCorOut { GeoCorOut( double sSag, double sTrack, Amg::Vector3D lp, double lSag ) : sagSign(sSag), trackingSign(sTrack), localPosition(lp), localSag(lSag) {} double sagSign; // sign indicating wether the particle passed above or below the wire diff --git a/MuonSpectrometer/MuonDigitization/MDT_Digitization/python/MdtDigitizationConfig.py b/MuonSpectrometer/MuonDigitization/MDT_Digitization/python/MdtDigitizationConfig.py index d47476b1ee55ee191e2027ab0e915e156ecb5eda..0b7b0e7ca7fe94c7b7ac9076985dbde3e137180b 100644 --- a/MuonSpectrometer/MuonDigitization/MDT_Digitization/python/MdtDigitizationConfig.py +++ b/MuonSpectrometer/MuonDigitization/MDT_Digitization/python/MdtDigitizationConfig.py @@ -84,5 +84,5 @@ def Mdt_OverlayDigitizationTool(name="Mdt_OverlayDigitizationTool",**kwargs): return MdtDigitizationTool(name,**kwargs) def getMDT_OverlayDigitizer(name="MDT_OverlayDigitizer", **kwargs): - kwargs.setdefault("MDT_DigitizationTool","Mdt_OverlayDigitizationTool") + kwargs.setdefault("DigitizationTool","Mdt_OverlayDigitizationTool") return CfgMgr.MDT_Digitizer(name,**kwargs) diff --git a/MuonSpectrometer/MuonDigitization/MDT_Digitization/src/MDT_Digitizer.cxx b/MuonSpectrometer/MuonDigitization/MDT_Digitization/src/MDT_Digitizer.cxx index b7f4b8b4f869dca3f4b7568dee20becb3dfd22c0..fc6a555f7969d1d5e88151dcd1d468e8bc5e8c23 100644 --- a/MuonSpectrometer/MuonDigitization/MDT_Digitization/src/MDT_Digitizer.cxx +++ b/MuonSpectrometer/MuonDigitization/MDT_Digitization/src/MDT_Digitizer.cxx @@ -1,47 +1,25 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ -#include "MuonDigToolInterfaces/IMuonDigitizationTool.h" - #include "MDT_Digitization/MDT_Digitizer.h" +#include "PileUpTools/IPileUpTool.h" -MDT_Digitizer::MDT_Digitizer(const std::string& name, - ISvcLocator* pSvcLocator) - : AthAlgorithm(name, pSvcLocator), - m_digTool("MdtDigitizationTool", this ) -{ - declareProperty("MDT_DigitizationTool", m_digTool); -} - -MDT_Digitizer::~MDT_Digitizer() { +MDT_Digitizer::MDT_Digitizer(const std::string& name, + ISvcLocator* pSvcLocator) + : AthAlgorithm(name, pSvcLocator) +{ } StatusCode MDT_Digitizer::initialize() { - - if (m_digTool.retrieve().isFailure()) { - ATH_MSG_FATAL ( "Could not retrieve MDT Digitization Tool!" ); - return StatusCode::FAILURE; - } - ATH_MSG_DEBUG ( "Retrieved MDT Digitization Tool." ); + ATH_CHECK(m_digTool.retrieve()); + ATH_MSG_DEBUG("Retrieved MdtDigitizationTool (" << m_digTool->name() << ")."); return StatusCode::SUCCESS; - } StatusCode MDT_Digitizer::execute() { - - ATH_MSG_DEBUG ( "in execute()" ); - - return m_digTool->digitize(); -} - - StatusCode MDT_Digitizer::finalize() { - - ATH_MSG_DEBUG ( "finalize." ); - - return StatusCode::SUCCESS; + ATH_MSG_DEBUG("in execute()"); + return m_digTool->processAllSubEvents(); } - - diff --git a/MuonSpectrometer/MuonDigitization/MDT_Digitization/src/MdtDigitizationTool.cxx b/MuonSpectrometer/MuonDigitization/MDT_Digitization/src/MdtDigitizationTool.cxx index 2d5dcc0b349f0eec2d48c576c46588612b316447..3a2cf95cee792c2e5d3cf0b8cc025ee817f06f9f 100644 --- a/MuonSpectrometer/MuonDigitization/MDT_Digitization/src/MdtDigitizationTool.cxx +++ b/MuonSpectrometer/MuonDigitization/MDT_Digitization/src/MdtDigitizationTool.cxx @@ -82,8 +82,6 @@ MdtDigitizationTool::MdtDigitizationTool(const std::string& type,const std::stri , m_calibDbSvc("MdtCalibrationDbSvc", name) , m_pSummarySvc("MDTCondSummarySvc", name) { - declareInterface<IMuonDigitizationTool>(this); - declareProperty("DigitizationTool", m_digiTool, "Tool which handle the digitization process"); //Conditions Database declareProperty("MdtCalibrationDbSvc", m_calibDbSvc); @@ -419,11 +417,6 @@ StatusCode MdtDigitizationTool::mergeEvent() { } -StatusCode MdtDigitizationTool::digitize() { - return this->processAllSubEvents(); -} - - StatusCode MdtDigitizationTool::processAllSubEvents() { ATH_MSG_DEBUG ( "MdtDigitizationTool::processAllSubEvents()" ); diff --git a/MuonSpectrometer/MuonDigitization/RPC_Digitization/CMakeLists.txt b/MuonSpectrometer/MuonDigitization/RPC_Digitization/CMakeLists.txt index f5c7f67068f2b24a271531eaed96f89029556d63..d9262d24237bd809d9bb7d124b17eb5f21fd52bb 100644 --- a/MuonSpectrometer/MuonDigitization/RPC_Digitization/CMakeLists.txt +++ b/MuonSpectrometer/MuonDigitization/RPC_Digitization/CMakeLists.txt @@ -11,7 +11,6 @@ atlas_depends_on_subdirs( PUBLIC Control/PileUpTools Event/xAOD/xAODEventInfo GaudiKernel - MuonSpectrometer/MuonDigitization/MuonDigToolInterfaces MuonSpectrometer/MuonSimData MuonSpectrometer/MuonSimEvent Simulation/HitManagement diff --git a/MuonSpectrometer/MuonDigitization/RPC_Digitization/RPC_Digitization/RPC_Digitizer.h b/MuonSpectrometer/MuonDigitization/RPC_Digitization/RPC_Digitization/RPC_Digitizer.h index 67b86157d7a3b2abbf2ce0e4090a3fd4f5964dc0..b1e091ee7c8ba5eb349b009b90e2540fc47ae814 100644 --- a/MuonSpectrometer/MuonDigitization/RPC_Digitization/RPC_Digitization/RPC_Digitizer.h +++ b/MuonSpectrometer/MuonDigitization/RPC_Digitization/RPC_Digitization/RPC_Digitizer.h @@ -1,31 +1,32 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ -#ifndef MUONDIGITIZATION_RPC_DIGITIZER_H -#define MUONDIGITIZATION_RPC_DIGITIZER_H +#ifndef RPC_DIGITIZATION_RPC_DIGITIZER_H +#define RPC_DIGITIZATION_RPC_DIGITIZER_H #include "GaudiKernel/ToolHandle.h" #include "AthenaBaseComps/AthAlgorithm.h" -class IMuonDigitizationTool; +class IPileUpTool; class RPC_Digitizer : public AthAlgorithm { public: + /** Constructor with parameters */ RPC_Digitizer(const std::string& name, ISvcLocator* pSvcLocator); - ~RPC_Digitizer(); - - StatusCode initialize(); - StatusCode execute(); - StatusCode finalize(); - private: + /** Destructor */ + virtual ~RPC_Digitizer() = default; - ToolHandle<IMuonDigitizationTool> m_digTool; -}; + /** Basic algorithm methods */ + virtual StatusCode initialize() override final; + virtual StatusCode execute() override final; -#endif // MUONDIGITIZATION_RPC_DIGITIZER_H + private: + ToolHandle<IPileUpTool> m_digTool{this, "DigitizationTool", "RpcDigitizationTool", "RpcDigitizationTool name"}; +}; +#endif // RPC_DIGITIZATION_RPC_DIGITIZER_H diff --git a/MuonSpectrometer/MuonDigitization/RPC_Digitization/RPC_Digitization/RpcDigitizationTool.h b/MuonSpectrometer/MuonDigitization/RPC_Digitization/RPC_Digitization/RpcDigitizationTool.h index 91dbcab1240a2cc82a609b1cac79bd19fe7de591..e76fd09eb4638f3a989252ad5f8f45cdbab78bc6 100644 --- a/MuonSpectrometer/MuonDigitization/RPC_Digitization/RPC_Digitization/RpcDigitizationTool.h +++ b/MuonSpectrometer/MuonDigitization/RPC_Digitization/RPC_Digitization/RpcDigitizationTool.h @@ -40,7 +40,6 @@ the same strip before the dead time is ignored. #include "PileUpTools/PileUpToolBase.h" -#include "MuonDigToolInterfaces/IMuonDigitizationTool.h" #include "AthenaKernel/IAthRNGSvc.h" @@ -74,7 +73,7 @@ namespace CLHEP{ class HepRandomEngine; } -class RpcDigitizationTool : virtual public IMuonDigitizationTool, public PileUpToolBase { +class RpcDigitizationTool : public PileUpToolBase { public: RpcDigitizationTool(const std::string& type, const std::string& name, const IInterface* pIID); @@ -104,11 +103,6 @@ public: all the required SubEvents. */ virtual StatusCode processAllSubEvents() override final; - /** When being run from RPC_Digitizer, this method is called during - the event loop. Just calls processAllSubEvents - leaving for - back-compatibility (IMuonDigitizationTool) */ - virtual StatusCode digitize() override final; - private: const MuonGM::MuonDetectorManager* m_GMmgr; diff --git a/MuonSpectrometer/MuonDigitization/RPC_Digitization/python/RPC_DigitizationConfig.py b/MuonSpectrometer/MuonDigitization/RPC_Digitization/python/RPC_DigitizationConfig.py index ae86b6a7ac5597536de4f3ad6b54b0f6deb3d6de..a04fc8a80392a4a9763ba42ded48adbcf5ba9bf0 100644 --- a/MuonSpectrometer/MuonDigitization/RPC_Digitization/python/RPC_DigitizationConfig.py +++ b/MuonSpectrometer/MuonDigitization/RPC_Digitization/python/RPC_DigitizationConfig.py @@ -154,5 +154,5 @@ def Rpc_OverlayDigitizationTool(name="RpcDigitizationTool", **kwargs): return RpcDigitizationTool(name, **kwargs) def getRPC_OverlayDigitizer(name="RPC_OverlayDigitizer", **kwargs): - kwargs.setdefault("RPC_DigitizationTool","Rpc_OverlayDigitizationTool") + kwargs.setdefault("DigitizationTool","Rpc_OverlayDigitizationTool") return CfgMgr.RPC_Digitizer(name,**kwargs) diff --git a/MuonSpectrometer/MuonDigitization/RPC_Digitization/src/RPC_Digitizer.cxx b/MuonSpectrometer/MuonDigitization/RPC_Digitization/src/RPC_Digitizer.cxx index 0ffc2f61244d9b528903bcadaa3caf7bb34bbbbb..af17d922a16ca7c0029d1b3fdc99b079b67ad05f 100644 --- a/MuonSpectrometer/MuonDigitization/RPC_Digitization/src/RPC_Digitizer.cxx +++ b/MuonSpectrometer/MuonDigitization/RPC_Digitization/src/RPC_Digitizer.cxx @@ -1,47 +1,25 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ -#include "MuonDigToolInterfaces/IMuonDigitizationTool.h" - #include "RPC_Digitization/RPC_Digitizer.h" +#include "PileUpTools/IPileUpTool.h" -RPC_Digitizer::RPC_Digitizer(const std::string& name, - ISvcLocator* pSvcLocator) - : AthAlgorithm(name, pSvcLocator), - m_digTool("RpcDigitizationTool", this ) -{ - declareProperty("RPC_DigitizationTool", m_digTool); -} - -RPC_Digitizer::~RPC_Digitizer() { +RPC_Digitizer::RPC_Digitizer(const std::string& name, + ISvcLocator* pSvcLocator) + : AthAlgorithm(name, pSvcLocator) +{ } StatusCode RPC_Digitizer::initialize() { - - if (m_digTool.retrieve().isFailure()) { - ATH_MSG_FATAL ( "Could not retrieve RPC Digitization Tool!" ); - return StatusCode::FAILURE; - } - ATH_MSG_DEBUG ( "Retrieved RPC Digitization Tool." ); + ATH_CHECK(m_digTool.retrieve()); + ATH_MSG_DEBUG("Retrieved RpcDigitizationTool (" << m_digTool->name() << ")."); return StatusCode::SUCCESS; - } StatusCode RPC_Digitizer::execute() { - - ATH_MSG_DEBUG ( "in execute()" ); - - return m_digTool->digitize(); -} - -StatusCode RPC_Digitizer::finalize() { - - ATH_MSG_DEBUG ( "finalize." ); - - return StatusCode::SUCCESS; + ATH_MSG_DEBUG("in execute()"); + return m_digTool->processAllSubEvents(); } - - diff --git a/MuonSpectrometer/MuonDigitization/RPC_Digitization/src/RpcDigitizationTool.cxx b/MuonSpectrometer/MuonDigitization/RPC_Digitization/src/RpcDigitizationTool.cxx index 992c25de6fa444e59ff4e0564ff76a63286260a0..56d7e815a3448d95b7ae1ea454ab05bbc8b07ebf 100644 --- a/MuonSpectrometer/MuonDigitization/RPC_Digitization/src/RpcDigitizationTool.cxx +++ b/MuonSpectrometer/MuonDigitization/RPC_Digitization/src/RpcDigitizationTool.cxx @@ -82,8 +82,6 @@ RpcDigitizationTool::RpcDigitizationTool(const std::string& type, , m_tagInfoMgr(0) { - declareInterface<IMuonDigitizationTool>(this); - declareProperty("Parameters" , m_paraFile = "G4RPC_Digitizer.txt"); // File with cluster distributions declareProperty("InputObjectName" , m_inputHitCollectionName = "RPC_Hits", "name of the input object"); declareProperty("WindowLowerOffset" , m_timeWindowLowerOffset = -100. , "digitization window lower limit"); @@ -522,11 +520,6 @@ StatusCode RpcDigitizationTool::mergeEvent() { return status; } -//-------------------------------------------- -StatusCode RpcDigitizationTool::digitize() { - return this->processAllSubEvents(); -} - //-------------------------------------------- StatusCode RpcDigitizationTool::processAllSubEvents() { diff --git a/MuonSpectrometer/MuonDigitization/TGC_Digitization/CMakeLists.txt b/MuonSpectrometer/MuonDigitization/TGC_Digitization/CMakeLists.txt index a3e67f036b3236d59f2dce5acf50da8a2f5fe7aa..3625119cac8fb4ee688bf2be4be20e28a8cd3ab6 100644 --- a/MuonSpectrometer/MuonDigitization/TGC_Digitization/CMakeLists.txt +++ b/MuonSpectrometer/MuonDigitization/TGC_Digitization/CMakeLists.txt @@ -14,7 +14,6 @@ atlas_depends_on_subdirs( PUBLIC DetectorDescription/Identifier Event/EventInfo GaudiKernel - MuonSpectrometer/MuonDigitization/MuonDigToolInterfaces MuonSpectrometer/MuonSimEvent Simulation/HitManagement PRIVATE diff --git a/MuonSpectrometer/MuonDigitization/TGC_Digitization/TGC_Digitization/TGCDigitizer.h b/MuonSpectrometer/MuonDigitization/TGC_Digitization/TGC_Digitization/TGCDigitizer.h index 73e84458346429516f32575e8f11f3a45a01b086..82e1424b1b7a1e5da358847d266d927303b931b9 100644 --- a/MuonSpectrometer/MuonDigitization/TGC_Digitization/TGC_Digitization/TGCDigitizer.h +++ b/MuonSpectrometer/MuonDigitization/TGC_Digitization/TGC_Digitization/TGCDigitizer.h @@ -1,27 +1,30 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ -#ifndef MUONDIGITIZATION_TGC_DIGITIZER_H -#define MUONDIGITIZATION_TGC_DIGITIZER_H +#ifndef TGC_DIGITIZATION_TGC_DIGITIZER_H +#define TGC_DIGITIZATION_TGC_DIGITIZER_H #include "AthenaBaseComps/AthAlgorithm.h" #include "GaudiKernel/ToolHandle.h" -class IMuonDigitizationTool; +class IPileUpTool; class TGCDigitizer : public AthAlgorithm { public: + + /** Constructor with parameters */ TGCDigitizer(const std::string& name, ISvcLocator* pSvcLocator); - ~TGCDigitizer(); - - StatusCode initialize(); - StatusCode execute(); - StatusCode finalize(); - private: - ToolHandle<IMuonDigitizationTool> m_digTool; + /** Destructor */ + virtual ~TGCDigitizer() = default; + /** Basic algorithm methods */ + virtual StatusCode initialize() override final; + virtual StatusCode execute() override final; + + private: + ToolHandle<IPileUpTool> m_digTool{this, "DigitizationTool", "TgcDigitizationTool", "TgcDigitizationTool name"}; }; -#endif // MUONDIGITIZATION_TGC_DIGITIZER_H +#endif // TGC_DIGITIZATION_TGC_DIGITIZER_H diff --git a/MuonSpectrometer/MuonDigitization/TGC_Digitization/TGC_Digitization/TgcDigitizationTool.h b/MuonSpectrometer/MuonDigitization/TGC_Digitization/TGC_Digitization/TgcDigitizationTool.h index 04381ae9a7ee1fd3206b9f06ef007a394dd87ff7..bc3fbb319e00bb4c9a0d2c6c27ce6d25bd374d68 100644 --- a/MuonSpectrometer/MuonDigitization/TGC_Digitization/TGC_Digitization/TgcDigitizationTool.h +++ b/MuonSpectrometer/MuonDigitization/TGC_Digitization/TGC_Digitization/TgcDigitizationTool.h @@ -11,7 +11,6 @@ * @author John Chapman, Yoji Hasegawa, Susumu Oda */ -#include "MuonDigToolInterfaces/IMuonDigitizationTool.h" #include "PileUpTools/PileUpToolBase.h" #include "EventInfo/PileUpEventInfo.h" /*SubEvent*/ @@ -38,7 +37,7 @@ namespace MuonGM{ class MuonDetectorManager; } -class TgcDigitizationTool : virtual public IMuonDigitizationTool, public PileUpToolBase { +class TgcDigitizationTool : public PileUpToolBase { public: TgcDigitizationTool(const std::string& type, const std::string& name, @@ -69,17 +68,13 @@ public: volume of a chamber. */ virtual StatusCode processAllSubEvents() override final; - /** Used by TGCDigitizer. Just calls processAllSubEvents - leaving - for back-compatibility (IMuonDigitizationTool) */ - virtual StatusCode digitize() override final; - /** Finalize */ virtual StatusCode finalize() override final; private: /** Get next event and extract collection of hit collections */ StatusCode getNextEvent(); - /** Core part of digitization use by mergeEvent (IPileUpTool) and digitize (IMuonDigitizationTool) */ + /** Core part of digitization used by processAllSubEvents and mergeEvent */ StatusCode digitizeCore(); protected: diff --git a/MuonSpectrometer/MuonDigitization/TGC_Digitization/python/TGC_DigitizationConfig.py b/MuonSpectrometer/MuonDigitization/TGC_Digitization/python/TGC_DigitizationConfig.py index cf10c94fcd1b70bf8f61b20fbcd5255fb4c3581b..433dfa3d615d1027afe7cc1231708e30a9f95ae1 100644 --- a/MuonSpectrometer/MuonDigitization/TGC_Digitization/python/TGC_DigitizationConfig.py +++ b/MuonSpectrometer/MuonDigitization/TGC_Digitization/python/TGC_DigitizationConfig.py @@ -37,5 +37,5 @@ def Tgc_OverlayDigitizationTool(name="Tgc_OverlayDigitizationTool", **kwargs): return TgcDigitizationTool(name,**kwargs) def getTGC_OverlayDigitizer(name="TGC_OverlayDigitizer", **kwargs): - kwargs.setdefault("TGC_DigitizationTool","Tgc_OverlayDigitizationTool") + kwargs.setdefault("DigitizationTool","Tgc_OverlayDigitizationTool") return CfgMgr.TGCDigitizer(name,**kwargs) diff --git a/MuonSpectrometer/MuonDigitization/TGC_Digitization/src/TGCDigitizer.cxx b/MuonSpectrometer/MuonDigitization/TGC_Digitization/src/TGCDigitizer.cxx index 44fba22b9ef8dccbc0a389477ded1b79d98a7fcf..1374ee8a0281db23a1d9968c4928b56c2d6eb48e 100644 --- a/MuonSpectrometer/MuonDigitization/TGC_Digitization/src/TGCDigitizer.cxx +++ b/MuonSpectrometer/MuonDigitization/TGC_Digitization/src/TGCDigitizer.cxx @@ -1,38 +1,25 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #include "TGC_Digitization/TGCDigitizer.h" +#include "PileUpTools/IPileUpTool.h" -#include "MuonDigToolInterfaces/IMuonDigitizationTool.h" -TGCDigitizer::TGCDigitizer(const std::string& name, - ISvcLocator* pSvcLocator) - : AthAlgorithm(name, pSvcLocator), - m_digTool("TgcDigitizationTool", this) +TGCDigitizer::TGCDigitizer(const std::string& name, + ISvcLocator* pSvcLocator) + : AthAlgorithm(name, pSvcLocator) { - declareProperty("TGC_DigitizationTool", m_digTool); -} - -TGCDigitizer::~TGCDigitizer() { } StatusCode TGCDigitizer::initialize() { - if(m_digTool.retrieve().isFailure()) { - ATH_MSG_FATAL("Could not retrieve TGC Digitization Tool!"); - return StatusCode::FAILURE; - } - ATH_MSG_DEBUG("Retrieved TGC Digitization Tool (" << m_digTool->name() << ")."); - + ATH_CHECK(m_digTool.retrieve()); + ATH_MSG_DEBUG("Retrieved TgcDigitizationTool (" << m_digTool->name() << ")."); + return StatusCode::SUCCESS; } StatusCode TGCDigitizer::execute() { ATH_MSG_DEBUG("in execute()"); - return m_digTool->digitize(); -} - -StatusCode TGCDigitizer::finalize() { - ATH_MSG_DEBUG("finalize."); - return StatusCode::SUCCESS; + return m_digTool->processAllSubEvents(); } diff --git a/MuonSpectrometer/MuonDigitization/TGC_Digitization/src/TgcDigitizationTool.cxx b/MuonSpectrometer/MuonDigitization/TGC_Digitization/src/TgcDigitizationTool.cxx index d628c190978fc23882a6f3d9f1e67cc45ed1d8ea..250efe6adc64cc119febade0575c6e1f45705307 100644 --- a/MuonSpectrometer/MuonDigitization/TGC_Digitization/src/TgcDigitizationTool.cxx +++ b/MuonSpectrometer/MuonDigitization/TGC_Digitization/src/TgcDigitizationTool.cxx @@ -49,8 +49,6 @@ TgcDigitizationTool::TgcDigitizationTool(const std::string& type, m_inputHitCollectionName("TGC_Hits"), m_vetoThisBarcode(crazyParticleBarcode) { - declareInterface<IMuonDigitizationTool>(this); - declareProperty("InputObjectName", m_inputHitCollectionName = "TGC_Hits", "name of the input object"); declareProperty("IncludePileUpTruth", m_includePileUpTruth = true, "Include pile-up truth info"); declareProperty("ParticleBarcodeVeto", m_vetoThisBarcode = crazyParticleBarcode, "Barcode of particle to ignore"); @@ -207,11 +205,6 @@ StatusCode TgcDigitizationTool::mergeEvent() { return StatusCode::SUCCESS; } -//_____________________________________________________________________________ -StatusCode TgcDigitizationTool::digitize() { - return this->processAllSubEvents(); -} - //_____________________________________________________________________________ StatusCode TgcDigitizationTool::processAllSubEvents() { ATH_MSG_DEBUG("TgcDigitizationTool::processAllSubEvents()"); diff --git a/MuonSpectrometer/MuonOverlay/CscOverlay/CMakeLists.txt b/MuonSpectrometer/MuonOverlay/CscOverlay/CMakeLists.txt index e08fb1349fda56d5b2e808aa3af848598822d158..4fdc2018cc20aa77e7a2a8d4cf53c9c3f6cb82b9 100644 --- a/MuonSpectrometer/MuonOverlay/CscOverlay/CMakeLists.txt +++ b/MuonSpectrometer/MuonOverlay/CscOverlay/CMakeLists.txt @@ -8,6 +8,7 @@ atlas_subdir( CscOverlay ) # Declare the package's dependencies: atlas_depends_on_subdirs( PUBLIC Control/AthenaKernel + Control/PileUpTools GaudiKernel MuonSpectrometer/MuonCalib/CscCalib/CscCalibTools MuonSpectrometer/MuonCnv/MuonCSC_CnvTools diff --git a/MuonSpectrometer/MuonOverlay/CscOverlay/CscOverlay/CscOverlay.h b/MuonSpectrometer/MuonOverlay/CscOverlay/CscOverlay/CscOverlay.h index 297747a6cc87884ed794ce830d41eab0557f78aa..d22064bfeb17a7da7e9d757e0c6e48b70dc43272 100644 --- a/MuonSpectrometer/MuonOverlay/CscOverlay/CscOverlay/CscOverlay.h +++ b/MuonSpectrometer/MuonOverlay/CscOverlay/CscOverlay/CscOverlay.h @@ -8,24 +8,22 @@ // // Ketevi A. Assamagan <ketevi@bnl.gov>, March 2008 -#ifndef CSCOVERLAY_H -#define CSCOVERLAY_H +#ifndef CSCOVERLAY_CSCOVERLAY_H +#define CSCOVERLAY_CSCOVERLAY_H #include <string> -#include "GaudiKernel/Algorithm.h" -#include "GaudiKernel/MsgStream.h" #include "GaudiKernel/ToolHandle.h" #include "MuonOverlayBase/MuonOverlayBase.h" #include "MuonDigToolInterfaces/IMuonDigitizationTool.h" +#include "PileUpTools/IPileUpTool.h" #include "MuonRDO/CscRawDataContainer.h" #include "CscCalibTools/ICscCalibTool.h" #include "MuonCSC_CnvTools/ICSC_RDO_Decoder.h" -#include "CLHEP/Random/RandomEngine.h" -#include "AthenaKernel/IAtRndmGenSvc.h" +#include "AthenaKernel/IAthRNGSvc.h" #include <vector> #include <map> @@ -34,12 +32,16 @@ class CscIdHelper; namespace std { template<typename _Tp> class auto_ptr; } +namespace CLHEP { + class HepRandomEngine; +} + class CscOverlay : public MuonOverlayBase { public: - + CscOverlay(const std::string &name,ISvcLocator *pSvcLocator); - /** Framework implemenrtation for the event loop */ + /** Framework implemenrtation for the event loop */ virtual StatusCode overlayInitialize(); virtual StatusCode overlayExecute(); virtual StatusCode overlayFinalize(); @@ -51,18 +53,18 @@ public: this->overlayContainer(data.get(), mc); } - /** if the 2 container do overlay, + /** if the 2 container do overlay, loop over the container and do the overlap collection by collection */ - void mergeCollections(CscRawDataCollection *out_coll, const CscRawDataCollection *orig_coll, - const CscRawDataCollection *ovl_coll); - + void mergeCollections(CscRawDataCollection *out_coll, const CscRawDataCollection *orig_coll, + const CscRawDataCollection *ovl_coll, CLHEP::HepRandomEngine* rndmEngine); + private: - /** get the data in one SPU of a chamber */ + /** get the data in one SPU of a chamber */ void spuData( const CscRawDataCollection * coll, const uint16_t spuID, std::vector<const CscRawData*>& data); /** data in one gas lauer */ - uint32_t stripData ( const std::vector<const CscRawData*>& data, + uint32_t stripData ( const std::vector<const CscRawData*>& data, const unsigned int numSamples, std::map< int,std::vector<uint16_t> >& samples, uint32_t& hash, @@ -73,11 +75,12 @@ private: between zero bias data and simulation. If there is no overlap, simply copy the data */ std::vector<CscRawData*> overlay( const std::map< int,std::vector<uint16_t> >& sigSamples, - const std::map< int,std::vector<uint16_t> >& ovlSamples, - const uint32_t address, - const uint16_t spuID, - const uint16_t collId, - const uint32_t hash ); + const std::map< int,std::vector<uint16_t> >& ovlSamples, + const uint32_t address, + const uint16_t spuID, + const uint16_t collId, + const uint32_t hash, + CLHEP::HepRandomEngine *rndmEngine); //Whether the data needs to be fliped by 49-strip for bug#56002 bool needtoflip(const int address) const; @@ -86,7 +89,7 @@ private: void copyCscRawDataCollectionProperties(const CscRawDataCollection& sourceColl, CscRawDataCollection& outColl) const; // ---------------------------------------------------------------- - + // jO controllable properties. // "Main" containers are read, have data from "overlay" containers added, // and written out with the original SG keys. @@ -95,17 +98,14 @@ private: SG::WriteHandleKey<CscRawDataContainer> m_outputContainerKey{this,"OutputContainerKey","StoreGateSvc+CSCRDO",""}; - const CscIdHelper * m_cscHelper; - ToolHandle<ICscCalibTool> m_cscCalibTool; - ToolHandle<IMuonDigitizationTool> m_digTool; - ToolHandle<IMuonDigitizationTool> m_rdoTool2; - ToolHandle<IMuonDigitizationTool> m_rdoTool4; - ToolHandle<Muon::ICSC_RDO_Decoder> m_cscRdoDecoderTool; - - ServiceHandle <IAtRndmGenSvc> m_rndmSvc; // Random number service - CLHEP::HepRandomEngine *m_rndmEngine; // Random number engine used - not init in SiDigitization - std::string m_rndmEngineName;// name of random engine + const CscIdHelper * m_cscHelper{nullptr}; + ToolHandle<ICscCalibTool> m_cscCalibTool{this, "CalibTool", "CscCalibTool", ""}; + ToolHandle<IPileUpTool> m_digTool{this, "DigitizationTool", "CscDigitizationTool", ""}; + ToolHandle<IMuonDigitizationTool> m_rdoTool2{this, "MakeRDOTool2", "CscDigitToCscRDOTool2", ""}; + ToolHandle<IMuonDigitizationTool> m_rdoTool4{this, "MakeRDOTool4", "CscDigitToCscRDOTool4", ""}; + PublicToolHandle<Muon::ICSC_RDO_Decoder> m_cscRdoDecoderTool{this, "CscRdoDecoderTool", "Muon::CscRDO_Decoder", ""}; + ServiceHandle <IAthRNGSvc> m_rndmSvc{this, "RndmSvc", "AthRNGSvc", "Random Number Service"}; // Random number service }; -#endif/*CScOVERLAY_H*/ +#endif/*CSCOVERLAY_CSCOVERLAY_H*/ diff --git a/MuonSpectrometer/MuonOverlay/CscOverlay/python/CscOverlayConfig.py b/MuonSpectrometer/MuonOverlay/CscOverlay/python/CscOverlayConfig.py index c1bb2949482ae618462582e23c0ca0f1eaf753d7..4be3e3aa0db4138312bc24d68b5662372926cfec 100644 --- a/MuonSpectrometer/MuonOverlay/CscOverlay/python/CscOverlayConfig.py +++ b/MuonSpectrometer/MuonOverlay/CscOverlay/python/CscOverlayConfig.py @@ -7,9 +7,6 @@ def getCscOverlay(name="CscOverlay", **kwargs): kwargs.setdefault("DigitizationTool", "Csc_OverlayDigitizationTool") kwargs.setdefault("MakeRDOTool2", "CscDigitToCscRDOTool2") kwargs.setdefault("MakeRDOTool4", "CscDigitToCscRDOTool4") - from Digitization.DigitizationFlags import digitizationFlags - kwargs.setdefault("RndmSvc", digitizationFlags.rndmSvc.get_Value()) - digitizationFlags.rndmSeedList.addSeed("CscOverlay", 12261551, 245536301 ) kwargs.setdefault("MCStore", overlayFlags.evtStore()) kwargs.setdefault("DataStore", overlayFlags.dataStore()) diff --git a/MuonSpectrometer/MuonOverlay/CscOverlay/src/CscOverlay.cxx b/MuonSpectrometer/MuonOverlay/CscOverlay/src/CscOverlay.cxx index 78f166e41d76f6505812f8401f8f587ac7d1f877..1358ced7a0ff61186b6a2aff30522f7b32d7eefc 100644 --- a/MuonSpectrometer/MuonOverlay/CscOverlay/src/CscOverlay.cxx +++ b/MuonSpectrometer/MuonOverlay/CscOverlay/src/CscOverlay.cxx @@ -5,14 +5,12 @@ #include "CscOverlay/CscOverlay.h" #include "StoreGate/StoreGateSvc.h" -#include "StoreGate/DataHandle.h" #include "StoreGate/ReadHandle.h" #include "StoreGate/WriteHandle.h" -#include "CxxUtils/make_unique.h" -#include "MuonDigToolInterfaces/IMuonDigitizationTool.h" #include "MuonIdHelpers/CscIdHelper.h" +#include "AthenaKernel/RNGWrapper.h" #include "CLHEP/Random/RandomEngine.h" #include "CLHEP/Random/RandGauss.h" @@ -23,27 +21,8 @@ constexpr uint16_t MAX_AMPL = 4095; // 12-bit ADC //================================================================ CscOverlay::CscOverlay(const std::string &name, ISvcLocator *pSvcLocator) : - MuonOverlayBase(name, pSvcLocator), - m_cscHelper(nullptr), - m_cscCalibTool( "CscCalibTool", this), - m_digTool("CscDigitizationTool", this ), - m_rdoTool2("CscDigitToCscRDOTool2", this ), - m_rdoTool4("CscDigitToCscRDOTool4", this ), - m_cscRdoDecoderTool ("Muon::CscRDO_Decoder"), - m_rndmSvc("AtRndmGenSvc", name ), - m_rndmEngine(nullptr), - m_rndmEngineName("CscOverlay") + MuonOverlayBase(name, pSvcLocator) { - - /** Event DAta Store keys for the 2 data streams to overlay - - modifiable in job options */ - declareProperty("DigitizationTool", m_digTool); - declareProperty("MakeRDOTool2", m_rdoTool2); - declareProperty("MakeRDOTool4", m_rdoTool4); - declareProperty("CscRdoDecoderTool", m_cscRdoDecoderTool ); - declareProperty("RndmSvc", m_rndmSvc, "Random Number Service used for CscDigitToCscRDOTool" ); - declareProperty("RndmEngine", m_rndmEngineName, "Random engine name for CscDigitToCscRDOTool"); - } //================================================================ @@ -54,9 +33,9 @@ StatusCode CscOverlay::overlayInitialize() /** access to the CSC Identifier helper */ ATH_CHECK(detStore()->retrieve(m_cscHelper, "CSCIDHELPER")); ATH_MSG_DEBUG(" Found the CscIdHelper. "); - + /** CSC calibratin tool for the Condtiions Data base access */ - ATH_CHECK(m_cscCalibTool.retrieve()); + ATH_CHECK(m_cscCalibTool.retrieve()); // get cscRdoDecoderTool ATH_CHECK(m_cscRdoDecoderTool.retrieve()); @@ -72,13 +51,6 @@ StatusCode CscOverlay::overlayInitialize() //random number initialization ATH_CHECK(m_rndmSvc.retrieve()); - - // getting our random numbers stream - m_rndmEngine = m_rndmSvc->GetEngine(m_rndmEngineName); - if (!m_rndmEngine) { - ATH_MSG_ERROR("Could not find RndmEngine : " << m_rndmEngineName); - return StatusCode::FAILURE; - } ATH_CHECK( m_inputDataRDOKey.initialize() ); ATH_CHECK( m_inputOverlayRDOKey.initialize() ); @@ -88,9 +60,9 @@ StatusCode CscOverlay::overlayInitialize() } //================================================================ -StatusCode CscOverlay::overlayFinalize() +StatusCode CscOverlay::overlayFinalize() { - ATH_MSG_INFO("CscOverlay finalized"); + ATH_MSG_INFO("CscOverlay finalized"); return StatusCode::SUCCESS; } @@ -99,14 +71,14 @@ StatusCode CscOverlay::overlayExecute() { ATH_MSG_DEBUG("CscOverlay::execute() begin"); //---------------------------------------------------------------- unsigned int numsamples=0;//to be determined from the data - SG::ReadHandle<CscRawDataContainer> inputDataRDO(m_inputDataRDOKey); + SG::ReadHandle<CscRawDataContainer> inputDataRDO(m_inputDataRDOKey); if(!inputDataRDO.isValid()) { ATH_MSG_WARNING("Could not get data CscRawDataContainer \"" << inputDataRDO.name() << "\" in " << inputDataRDO.store()); return StatusCode::SUCCESS; } ATH_MSG_VERBOSE("Found CscRawDataContainer \"" << inputDataRDO.name() << "\" in " << inputDataRDO.store()); if ((inputDataRDO->begin()==inputDataRDO->end()) || !*(inputDataRDO->begin())){ - ATH_MSG_WARNING("Could not get nsamples, inputDataRDO empty?"); + ATH_MSG_WARNING("Could not get nsamples, inputDataRDO empty?"); } else{ numsamples=inputDataRDO->begin()->numSamples(); @@ -114,11 +86,11 @@ StatusCode CscOverlay::overlayExecute() { /** in the simulation stream, run digitization of the fly and make RDO - this will be used as input to the overlay job */ - if ( m_digTool->digitize().isFailure() ) { + if ( m_digTool->processAllSubEvents().isFailure() ) { ATH_MSG_WARNING("On the fly CSC digitization failed "); return StatusCode::SUCCESS; } - + if (numsamples==2) { if ( m_rdoTool2->digitize().isFailure() ) { ATH_MSG_WARNING("On the fly CSC Digit -> RDO 2 failed "); @@ -137,7 +109,7 @@ StatusCode CscOverlay::overlayExecute() { ATH_MSG_WARNING("On the fly CSC Digit -> RDO failed - not 2 or 4 samples!"); //return StatusCode::SUCCESS; } - + if (numsamples>0) { ATH_MSG_DEBUG("Retrieving MC input CSC container"); SG::ReadHandle<CscRawDataContainer> inputOverlayRDO(m_inputOverlayRDOKey); @@ -146,13 +118,13 @@ StatusCode CscOverlay::overlayExecute() { return StatusCode::SUCCESS; } ATH_MSG_VERBOSE("Found CscRawOverlayContainer \"" << inputOverlayRDO.name() << "\" in " << inputOverlayRDO.store()); - + /* now do the overlay - reading real data from the data stream - and reading simulated RDO produced in the previous steps + and reading simulated RDO produced in the previous steps from the simulation stream */ this->overlayContainer(inputDataRDO.cptr(), inputOverlayRDO.cptr()); } - + //---------------------------------------------------------------- ATH_MSG_DEBUG("CscOverlay::execute() end"); return StatusCode::SUCCESS; @@ -170,7 +142,7 @@ void CscOverlay::overlayContainer(const CscRawDataContainer *main, } /** Add data from the main container to the output one */ - CscRawDataContainer::const_iterator p_main = main->begin(); + CscRawDataContainer::const_iterator p_main = main->begin(); CscRawDataContainer::const_iterator p_main_end = main->end(); for(; p_main != p_main_end; ) { const CscRawDataCollection& mainColl(**p_main); @@ -183,16 +155,20 @@ void CscOverlay::overlayContainer(const CscRawDataContainer *main, p_newColl->push_back(newData.release()); } if ( outputContainer->addCollection(p_newColl.release(), p_main.hashId()).isFailure() ) { - ATH_MSG_WARNING("addCollection failed for main"); + ATH_MSG_WARNING("addCollection failed for main"); } else { ATH_MSG_DEBUG("data overlayContainer() added overlaid RDO"); } ++p_main; } - + + ATHRNG::RNGWrapper* rngWrapper = m_rndmSvc->getEngine(this); + rngWrapper->setSeed( name(), Gaudi::Hive::currentContext() ); + CLHEP::HepRandomEngine *rndmEngine(*rngWrapper); + /** Add data from the ovl container to the output one */ - CscRawDataContainer::const_iterator p_ovl = overlay->begin(); + CscRawDataContainer::const_iterator p_ovl = overlay->begin(); CscRawDataContainer::const_iterator p_ovl_end = overlay->end(); for(; p_ovl != p_ovl_end; ) { @@ -203,7 +179,7 @@ void CscOverlay::overlayContainer(const CscRawDataContainer *main, /** The newly created stuff will go to the output EventStore SG */ auto out_coll = std::make_unique<CscRawDataCollection>( coll_id ); - /** Look for the same ID in the main StoreGate EventStore */ + /** Look for the same ID in the main StoreGate EventStore */ CscRawDataContainer::const_iterator q = outputContainer->indexFind(coll_id); if( q != outputContainer->end() ) { @@ -212,101 +188,101 @@ void CscOverlay::overlayContainer(const CscRawDataContainer *main, const CscRawDataCollection *coll_data = *q; this->copyCscRawDataCollectionProperties(*coll_data, *out_coll); - this->mergeCollections(out_coll.get(), coll_data, coll_ovl); + this->mergeCollections(out_coll.get(), coll_data, coll_ovl, rndmEngine); - /** Here the new collection is created, but not yet registered. - Put it in IDC in place of the original collection. + /** Here the new collection is created, but not yet registered. + Put it in IDC in place of the original collection. */ outputContainer->removeCollection(p_ovl.hashId()); - if(outputContainer->addCollection(out_coll.release(), p_ovl.hashId()).isFailure()) { - ATH_MSG_WARNING("addCollection failed "); + if(outputContainer->addCollection(out_coll.release(), p_ovl.hashId()).isFailure()) { + ATH_MSG_WARNING("addCollection failed "); } else { - ATH_MSG_DEBUG("overlayContainer() added overlaid RDO"); + ATH_MSG_DEBUG("overlayContainer() added overlaid RDO"); } } else { - /** Copy the complete collection from ovl to output, - hopefully preserving the "most derived" type of its raw data */ + /** Copy the complete collection from ovl to output, + hopefully preserving the "most derived" type of its raw data */ this->copyCscRawDataCollectionProperties(*coll_ovl, *out_coll); - /** Copy the complete collection from ovl to output, + /** Copy the complete collection from ovl to output, hopefully preserving the "most derived" type of its raw data */ unsigned int numSamples = coll_ovl->numSamples(); for(CscRawDataCollection::const_iterator i=coll_ovl->begin(); i!=coll_ovl->end(); i++) { - /** Put Digit into Collection */ - const CscRawData *data = ( *i ); - if( !data ) { - ATH_MSG_WARNING("NULL pointer to Digit!"); - continue; - } - else{ - /** The new RDO goes to m_storeGateOutput - no need to mess with the pedestal, but add in noise */ + /** Put Digit into Collection */ + const CscRawData *data = ( *i ); + if( !data ) { + ATH_MSG_WARNING("NULL pointer to Digit!"); + continue; + } + else{ + /** The new RDO goes to m_storeGateOutput - no need to mess with the pedestal, but add in noise */ uint16_t width = data->width(); uint32_t hashOffset = data->hashId(); - std::vector<uint16_t> all_samples; + std::vector<uint16_t> all_samples; for (unsigned int j=0; j<width; ++j) { - uint32_t stripHash = hashOffset+j; - double noise = m_cscCalibTool->stripNoise( stripHash, false ); - //double pedestal = m_cscCalibTool->stripPedestal( stripHash, false ); - std::vector<uint16_t> samples; - bool extractSamples = data->samples(j, numSamples, samples); - if (!extractSamples) { - ATH_MSG_WARNING("Unable to extract samples for strip " << j - << " Online Cluster width = " << width - << " for number of Samples = " << numSamples - << " continuing ..."); - } - else { - for (unsigned int k=0; k<samples.size(); ++k) { - double theNoise = CLHEP::RandGauss::shoot(m_rndmEngine, 0.0, noise); - float adcCount = samples[k] + theNoise; - if ( adcCount > MAX_AMPL ) { - ATH_MSG_DEBUG("value out of range (copying over signal): " << adcCount << " " - << " Setting it to max value = " << MAX_AMPL - << " IdentifierHash is " << stripHash); - adcCount = MAX_AMPL; - } - all_samples.push_back( (uint16_t) rint(adcCount) ); - } - } - } - auto rdo = std::make_unique<CscRawData>( all_samples, data->address(), data->identify(), data->rpuID(), data->width() ); + uint32_t stripHash = hashOffset+j; + double noise = m_cscCalibTool->stripNoise( stripHash, false ); + //double pedestal = m_cscCalibTool->stripPedestal( stripHash, false ); + std::vector<uint16_t> samples; + bool extractSamples = data->samples(j, numSamples, samples); + if (!extractSamples) { + ATH_MSG_WARNING("Unable to extract samples for strip " << j + << " Online Cluster width = " << width + << " for number of Samples = " << numSamples + << " continuing ..."); + } + else { + for (unsigned int k=0; k<samples.size(); ++k) { + double theNoise = CLHEP::RandGauss::shoot(rndmEngine, 0.0, noise); + float adcCount = samples[k] + theNoise; + if ( adcCount > MAX_AMPL ) { + ATH_MSG_DEBUG("value out of range (copying over signal): " << adcCount << " " + << " Setting it to max value = " << MAX_AMPL + << " IdentifierHash is " << stripHash); + adcCount = MAX_AMPL; + } + all_samples.push_back( (uint16_t) rint(adcCount) ); + } + } + } + auto rdo = std::make_unique<CscRawData>( all_samples, data->address(), data->identify(), data->rpuID(), data->width() ); rdo->setHashID( data->hashId() );//ACH - was "width()" ??? - rdo->setTime( data->time() );//ACH - was absent - - //perform some checks - bool good=true; - for (unsigned int j=0; j<width; ++j) { - const Identifier channelId = m_cscRdoDecoderTool->channelIdentifier(rdo.get(), j); - if(!(m_cscHelper->valid(channelId))) { - ATH_MSG_WARNING("Invalid CSC Identifier! - skipping " << channelId); - good=false; - } - } - if (good){ - out_coll->push_back( rdo.release() ); - } - } + rdo->setTime( data->time() );//ACH - was absent + + //perform some checks + bool good=true; + for (unsigned int j=0; j<width; ++j) { + const Identifier channelId = m_cscRdoDecoderTool->channelIdentifier(rdo.get(), j); + if(!(m_cscHelper->valid(channelId))) { + ATH_MSG_WARNING("Invalid CSC Identifier! - skipping " << channelId); + good=false; + } + } + if (good){ + out_coll->push_back( rdo.release() ); + } + } } - + /** The new collection goes to m_storeGateOutput */ if(outputContainer->addCollection(out_coll.release(), out_coll->identify()).isFailure()) { - ATH_MSG_WARNING("overlayContainer(): Problem in outputContainer->addCollection(Identifier)"); + ATH_MSG_WARNING("overlayContainer(): Problem in outputContainer->addCollection(Identifier)"); } else { - ATH_MSG_DEBUG("overlayContainer() added new RDO"); + ATH_MSG_DEBUG("overlayContainer() added new RDO"); } } - + ++p_ovl; } - + ATH_MSG_DEBUG("overlayContainer<>() end"); } - + // Copying CscRawDataCollection properties void CscOverlay::copyCscRawDataCollectionProperties(const CscRawDataCollection& sourceColl, CscRawDataCollection& outColl) const { /** copy a few things to the new collection */ @@ -322,7 +298,7 @@ void CscOverlay::overlayContainer(const CscRawDataContainer *main, } void CscOverlay::spuData( const CscRawDataCollection * coll, const uint16_t spuID, std::vector<const CscRawData*>& data) { - data.clear(); if ( !coll ) return; + data.clear(); if ( !coll ) return; CscRawDataCollection::const_iterator idata = coll->begin(); CscRawDataCollection::const_iterator edata = coll->end(); for ( ; idata != edata; ++idata ) { @@ -332,12 +308,12 @@ void CscOverlay::spuData( const CscRawDataCollection * coll, const uint16_t spuI } bool CscOverlay::needtoflip(const int address) const { - int measuresPhi = ( (address & 0x00000100) >> 8); - if (address<2147483640 && measuresPhi) { - int stationEta = ( ((address & 0x00001000) >> 12 ) == 0x0) ? -1 : 1; - if (stationEta>0) { return true; } - } - return false; + int measuresPhi = ( (address & 0x00000100) >> 8); + if (address<2147483640 && measuresPhi) { + int stationEta = ( ((address & 0x00001000) >> 12 ) == 0x0) ? -1 : 1; + if (stationEta>0) { return true; } + } + return false; } // @@ -347,7 +323,8 @@ bool CscOverlay::needtoflip(const int address) const { //================================================================ void CscOverlay::mergeCollections(CscRawDataCollection *out_coll, const CscRawDataCollection *data_coll, - const CscRawDataCollection *ovl_coll) + const CscRawDataCollection *ovl_coll, + CLHEP::HepRandomEngine* rndmEngine) { ATH_MSG_DEBUG("mergeCollection<>() begin"); @@ -355,24 +332,24 @@ void CscOverlay::mergeCollections(CscRawDataCollection *out_coll, unsigned int nSigSamples = data_coll->numSamples(); unsigned int nOvlSamples = ovl_coll->numSamples(); - // sampling times in both data streams + // sampling times in both data streams unsigned int dataSamplingTime = data_coll->rate(); unsigned int ovlSamplingTime = ovl_coll->rate(); if ( dataSamplingTime != ovlSamplingTime ) { ATH_MSG_WARNING("Overlay of inconsistent data - sampling times not the same " - << dataSamplingTime << " ns " << ovlSamplingTime << " ns"); + << dataSamplingTime << " ns " << ovlSamplingTime << " ns"); return; } if ( nSigSamples != nOvlSamples ) { ATH_MSG_WARNING("Overlay of inconsistent data - number of samples not the same " - << nSigSamples << " " << nOvlSamples); + << nSigSamples << " " << nOvlSamples); return; } /** loop over the SPU - collecting thr data by layer - do the overlay by igas layer in a chamber */ + do the overlay by igas layer in a chamber */ uint16_t clusterCounts[] = {0,0,0,0,0,0,0,0,0,0}; uint16_t rpuCount[] = {0,0}; for ( uint16_t spuID=0; spuID<10; ++spuID) { @@ -384,7 +361,7 @@ void CscOverlay::mergeCollections(CscRawDataCollection *out_coll, this->spuData(ovl_coll, spuID, ovlData); /** for the non-precision strips, all the 4 layers in a chamber - are in the same SPU, we need to recover the data by chamber layer */ + are in the same SPU, we need to recover the data by chamber layer */ int layer = 0; if ( spuID == 4 || spuID == 9 ) layer=4; for ( int j=0; j<=layer; ++j ) { @@ -395,116 +372,116 @@ void CscOverlay::mergeCollections(CscRawDataCollection *out_coll, uint32_t sigAddress = this->stripData( sigData, nSigSamples, sigSamples, sigHash, spuID, j , true); // real data uint32_t ovlAddress = this->stripData( ovlData, nOvlSamples, ovlSamples, ovlHash, spuID, j , false); // simulation if (sigSamples.size()==0 && ovlSamples.size()==0) continue; - + uint32_t hash = std::min( sigHash, ovlHash ); uint32_t address = std::min( sigAddress, ovlAddress ); if (sigSamples.size()!=0 && ovlSamples.size()!=0 && needtoflip(address)){ - ATH_MSG_DEBUG("Looking for overlap of hashes and addresses within witdths because needtoflip"); - msg() << MSG::VERBOSE ; - std::set<int> sig; int lastindex=-1; - for (std::map< int,std::vector<uint16_t> >::const_iterator si=sigSamples.begin(); si!=sigSamples.end(); ++si) { - if (si!=sigSamples.begin() && si->first-lastindex!=1) break; - lastindex=si->first; - sig.insert(si->first); msg() << si->first << " "; - } - msg()<<endmsg; - bool overlap=false; - msg() <<MSG::VERBOSE ; - for (std::map< int,std::vector<uint16_t> >::const_iterator so=ovlSamples.begin(); so!=ovlSamples.end(); ++so) { - //add 1 to beginning and end of list because adjacent counts as overlap - msg() << (so->first)-1 << " "; - if (sig.find((so->first)-1)!=sig.end()) {overlap=true; msg() << "!!";} - msg() << (so->first) << " "; - if (sig.find((so->first))!=sig.end()) {overlap=true; msg() << "!!";} - msg() << (so->first)+1 << " "; - if (sig.find((so->first)+1)!=sig.end()) {overlap=true; msg() << "!!";} - } - msg()<<endmsg; - if (!overlap){ - ATH_MSG_DEBUG("Taking max of hashes and addresses because needtoflip and no overlap"); - hash = std::max( sigHash, ovlHash ); - address = std::max( sigAddress, ovlAddress ); - } + ATH_MSG_DEBUG("Looking for overlap of hashes and addresses within witdths because needtoflip"); + msg() << MSG::VERBOSE ; + std::set<int> sig; int lastindex=-1; + for (std::map< int,std::vector<uint16_t> >::const_iterator si=sigSamples.begin(); si!=sigSamples.end(); ++si) { + if (si!=sigSamples.begin() && si->first-lastindex!=1) break; + lastindex=si->first; + sig.insert(si->first); msg() << si->first << " "; + } + msg()<<endmsg; + bool overlap=false; + msg() <<MSG::VERBOSE ; + for (std::map< int,std::vector<uint16_t> >::const_iterator so=ovlSamples.begin(); so!=ovlSamples.end(); ++so) { + //add 1 to beginning and end of list because adjacent counts as overlap + msg() << (so->first)-1 << " "; + if (sig.find((so->first)-1)!=sig.end()) {overlap=true; msg() << "!!";} + msg() << (so->first) << " "; + if (sig.find((so->first))!=sig.end()) {overlap=true; msg() << "!!";} + msg() << (so->first)+1 << " "; + if (sig.find((so->first)+1)!=sig.end()) {overlap=true; msg() << "!!";} + } + msg()<<endmsg; + if (!overlap){ + ATH_MSG_DEBUG("Taking max of hashes and addresses because needtoflip and no overlap"); + hash = std::max( sigHash, ovlHash ); + address = std::max( sigAddress, ovlAddress ); + } } //for checks std::set<int> insertedstrips, readstrips; for (std::map< int,std::vector<uint16_t> >::const_iterator s=sigSamples.begin(); s!=sigSamples.end(); ++s){readstrips.insert(s->first);} for (std::map< int,std::vector<uint16_t> >::const_iterator si=ovlSamples.begin(); si!=ovlSamples.end(); ++si){readstrips.insert(si->first);} - - std::vector<CscRawData*> datums = this->overlay(sigSamples, ovlSamples,address, spuID, out_coll->identify(), hash ); - if ( datums.size()==0 ) { ATH_MSG_WARNING("datums is size 0!"); } + + std::vector<CscRawData*> datums = this->overlay(sigSamples, ovlSamples,address, spuID, out_coll->identify(), hash, rndmEngine); + if ( datums.size()==0 ) { ATH_MSG_WARNING("datums is size 0!"); } for (unsigned int di=0; di<datums.size(); ++di){ - CscRawData* datum=datums[di]; - hash = datum->hashId(); - address = datum->address(); - int stripstart = ( address & 0x000000FF) + 1 + 0; - ATH_MSG_DEBUG("Datum in layer="<<j<<" has hash="<<hash<<" address="<<address<<" stripstart="<<stripstart<<", "<< *datum ); - if (datum->width()==0) { - ATH_MSG_WARNING("Datum has 0 width!"); - continue; - } - - //perform some checks - int stationName = ( ( address & 0x00010000) >> 16 ) + 50; - int stationEta = ( ((address & 0x00001000) >> 12 ) == 0x0) ? -1 : 1; - int stationPhi = ( ( address & 0x0000E000) >> 13 ) + 1; - Identifier me= m_cscHelper->elementID(stationName,stationEta,stationPhi); - ATH_MSG_VERBOSE("stationName,Eta,Phi="<<stationName<<","<<stationEta<<","<<stationPhi<<" - me="<<me); - bool good=true; - for (unsigned int j=0; j<datum->width(); ++j) { - int chamberLayer = ( (address & 0x00000800) >> 11) + 0; - std::string det=m_cscCalibTool->getDetDescr(); - if ( det.find ("ATLAS-") != std::string::npos ) - chamberLayer = ( (address & 0x00000800) >> 11) + 1; - int wireLayer = ( (address & 0x00000600) >> 9) + 1; - int measuresPhi = ( (address & 0x00000100) >> 8); - int strip = ( address & 0x000000FF) + 1 + j; - ATH_MSG_VERBOSE("det,chamberlayer,wirelayer,measuresphi,strip="<<det<<","<<chamberLayer<<","<<wireLayer<<","<<measuresPhi<<","<<strip); - // Added to Online -> Offline id in A side number is opposite bug#56002 - if (measuresPhi) { - int stationEta = ( ((address & 0x00001000) >> 12 ) == 0x0) ? -1 : 1; - if (stationEta>0) { - strip = 49-strip; - ATH_MSG_VERBOSE("FLIP strip, now strip="<<strip); - } - } - insertedstrips.insert(strip);//for checks - Identifier mechan= m_cscHelper->channelID(me,chamberLayer,wireLayer,measuresPhi,strip); - ATH_MSG_VERBOSE("mechan="<<mechan); - const Identifier channelId = m_cscRdoDecoderTool->channelIdentifier(datum, j); - if(!(m_cscHelper->valid(channelId))) { - ATH_MSG_WARNING("Invalid CSC Identifier in merge! - skipping " << channelId ); - good=false; - } - else{ATH_MSG_DEBUG("Valid CSC Identifier in merge " << channelId);} - } - if (good){ out_coll->push_back(datum); } - else{ continue; } - - //keep count + CscRawData* datum=datums[di]; + hash = datum->hashId(); + address = datum->address(); + int stripstart = ( address & 0x000000FF) + 1 + 0; + ATH_MSG_DEBUG("Datum in layer="<<j<<" has hash="<<hash<<" address="<<address<<" stripstart="<<stripstart<<", "<< *datum ); + if (datum->width()==0) { + ATH_MSG_WARNING("Datum has 0 width!"); + continue; + } + + //perform some checks + int stationName = ( ( address & 0x00010000) >> 16 ) + 50; + int stationEta = ( ((address & 0x00001000) >> 12 ) == 0x0) ? -1 : 1; + int stationPhi = ( ( address & 0x0000E000) >> 13 ) + 1; + Identifier me= m_cscHelper->elementID(stationName,stationEta,stationPhi); + ATH_MSG_VERBOSE("stationName,Eta,Phi="<<stationName<<","<<stationEta<<","<<stationPhi<<" - me="<<me); + bool good=true; + for (unsigned int j=0; j<datum->width(); ++j) { + int chamberLayer = ( (address & 0x00000800) >> 11) + 0; + std::string det=m_cscCalibTool->getDetDescr(); + if ( det.find ("ATLAS-") != std::string::npos ) + chamberLayer = ( (address & 0x00000800) >> 11) + 1; + int wireLayer = ( (address & 0x00000600) >> 9) + 1; + int measuresPhi = ( (address & 0x00000100) >> 8); + int strip = ( address & 0x000000FF) + 1 + j; + ATH_MSG_VERBOSE("det,chamberlayer,wirelayer,measuresphi,strip="<<det<<","<<chamberLayer<<","<<wireLayer<<","<<measuresPhi<<","<<strip); + // Added to Online -> Offline id in A side number is opposite bug#56002 + if (measuresPhi) { + int stationEta = ( ((address & 0x00001000) >> 12 ) == 0x0) ? -1 : 1; + if (stationEta>0) { + strip = 49-strip; + ATH_MSG_VERBOSE("FLIP strip, now strip="<<strip); + } + } + insertedstrips.insert(strip);//for checks + Identifier mechan= m_cscHelper->channelID(me,chamberLayer,wireLayer,measuresPhi,strip); + ATH_MSG_VERBOSE("mechan="<<mechan); + const Identifier channelId = m_cscRdoDecoderTool->channelIdentifier(datum, j); + if(!(m_cscHelper->valid(channelId))) { + ATH_MSG_WARNING("Invalid CSC Identifier in merge! - skipping " << channelId ); + good=false; + } + else{ATH_MSG_DEBUG("Valid CSC Identifier in merge " << channelId);} + } + if (good){ out_coll->push_back(datum); } + else{ continue; } + + //keep count clusterCounts[spuID] += 1; if ( spuID <= 4 ) rpuCount[0] = 5; else if ( spuID > 4 && spuID <= 9 ) rpuCount[1] = 11; }//loop over datum - + //check if (readstrips!=insertedstrips){ - ATH_MSG_WARNING("Readstrips != Insertedstrips: "); - for (std::set<int>::const_iterator i = readstrips.begin(); i!=readstrips.end(); ++i){std::cout<<*i<<" ";} std::cout<<std::endl; - for (std::set<int>::const_iterator i = insertedstrips.begin(); i!=insertedstrips.end(); ++i){std::cout<<*i<<" ";} std::cout<<std::endl; + ATH_MSG_WARNING("Readstrips != Insertedstrips: "); + for (std::set<int>::const_iterator i = readstrips.begin(); i!=readstrips.end(); ++i){std::cout<<*i<<" ";} std::cout<<std::endl; + for (std::set<int>::const_iterator i = insertedstrips.begin(); i!=insertedstrips.end(); ++i){std::cout<<*i<<" ";} std::cout<<std::endl; } - } - } + } + } for (unsigned int i=0; i<10; ++i) out_coll->set_spuCount(i,clusterCounts[i]); for (unsigned int i=0; i<2; ++i) { if (rpuCount[i] != 0) out_coll->addRPU(rpuCount[i]); } // FIXME --- need to be able to reset the dataType - should add a new method to CscRawDataCollection for this ATH_MSG_DEBUG("mergeCollection<>() end "); } - + uint32_t CscOverlay::stripData ( const std::vector<const CscRawData*>& data, - const unsigned int numSamples, + const unsigned int numSamples, std::map< int,std::vector<uint16_t> >& samples, uint32_t& hash, const uint16_t spuID, @@ -536,12 +513,12 @@ uint32_t CscOverlay::stripData ( const std::vector<const CscRawData*>& data, int layer = m_cscHelper->wireLayer( stripId ); uint16_t width = datum->width(); - /** create the map only layer by layer - for the precision strip, we set gasLayer=0 because the spuID tells you the gas layer - for the non-precision strips, we need to explicitly get the gas layer number form the Identifier */ + /** create the map only layer by layer + for the precision strip, we set gasLayer=0 because the spuID tells you the gas layer + for the non-precision strips, we need to explicitly get the gas layer number form the Identifier */ bool non_precision = (gasLayer==layer) && (spuID==4 || spuID==9); bool precision = (gasLayer==0) && (!(spuID==4 || spuID==9)); - bool check = precision || non_precision; + bool check = precision || non_precision; if ( !check ) { //ATH_MSG_DEBUG("Not precision or non_precision, skipping layer="<<layer<<", gasLayer="<<gasLayer<<", spuID="<<spuID); continue; @@ -564,7 +541,7 @@ uint32_t CscOverlay::stripData ( const std::vector<const CscRawData*>& data, uint32_t oldStrip = uint32_t (strip & 0x000000FF); uint32_t newStrip = uint32_t (49-oldStrip);//starts at 1 strip=strip - oldStrip + newStrip; - + ATH_MSG_VERBOSE("needtoflip in stripdata, newaddress now = "<<newaddress<<", strip now = "<<strip); } @@ -585,16 +562,16 @@ uint32_t CscOverlay::stripData ( const std::vector<const CscRawData*>& data, std::vector<uint16_t> adcs; bool extractSamples = datum->samples(j, numSamples, adcs); if ( !extractSamples ) { - ATH_MSG_WARNING("Unable to extract samples for strip " << j - << " Online Cluster width = " << width << " for number of Samples = " << numSamples); - } - else { - int newstrip = (strip+j); - if (false && isdata && needtoflip(address)){ - newstrip = strip-j; - ATH_MSG_VERBOSE("needtoflip in stripdata, newstrip is "<<newstrip); - } - samples.insert ( std::make_pair( newstrip, adcs) ); + ATH_MSG_WARNING("Unable to extract samples for strip " << j + << " Online Cluster width = " << width << " for number of Samples = " << numSamples); + } + else { + int newstrip = (strip+j); + if (false && isdata && needtoflip(address)){ + newstrip = strip-j; + ATH_MSG_VERBOSE("needtoflip in stripdata, newstrip is "<<newstrip); + } + samples.insert ( std::make_pair( newstrip, adcs) ); } } } @@ -604,11 +581,12 @@ uint32_t CscOverlay::stripData ( const std::vector<const CscRawData*>& data, } std::vector<CscRawData*> CscOverlay::overlay( const std::map< int,std::vector<uint16_t> >& sigSamples, - const std::map< int,std::vector<uint16_t> >& ovlSamples, - const uint32_t address, - const uint16_t spuID, - const uint16_t collId, - const uint32_t hash ) + const std::map< int,std::vector<uint16_t> >& ovlSamples, + const uint32_t address, + const uint16_t spuID, + const uint16_t collId, + const uint32_t hash, + CLHEP::HepRandomEngine *rndmEngine) { ATH_MSG_DEBUG("overlay<>() begin: hash="<<hash<<" address="<<address); std::vector<CscRawData*> datas; @@ -630,8 +608,8 @@ std::vector<CscRawData*> CscOverlay::overlay( const std::map< int,std::vector<ui if ( sig != sigSamples.end() && ovl == ovlSamples.end() ) { // real data only ATH_MSG_VERBOSE("data only for i="<<i); for ( unsigned int j=0; j<(*sig).second.size(); ++j ) { - samples.push_back( (*sig).second.at(j) ); - assert((*sig).second.at(j)<=MAX_AMPL); + samples.push_back( (*sig).second.at(j) ); + assert((*sig).second.at(j)<=MAX_AMPL); } width++; used=true; } @@ -640,13 +618,13 @@ std::vector<CscRawData*> CscOverlay::overlay( const std::map< int,std::vector<ui int myhashw=myhash+width; if (needtoflip(myaddress)) {myhashw=myhash-width;} double noise = m_cscCalibTool->stripNoise( (myhashw), false );//in ADC counts for ( unsigned int j=0; j<(*ovl).second.size(); ++j ) { - double theNoise = CLHEP::RandGauss::shoot(m_rndmEngine, 0.0, noise); + double theNoise = CLHEP::RandGauss::shoot(rndmEngine, 0.0, noise); float adcCount = (*ovl).second.at(j) + theNoise ;//add noise if ( adcCount > MAX_AMPL ) { - ATH_MSG_DEBUG("value out of range (adding noise): " << adcCount << " " - << " Setting it to max value = " << MAX_AMPL - << " IdentifierHash is " << (myhashw)); - adcCount = MAX_AMPL; + ATH_MSG_DEBUG("value out of range (adding noise): " << adcCount << " " + << " Setting it to max value = " << MAX_AMPL + << " IdentifierHash is " << (myhashw)); + adcCount = MAX_AMPL; } samples.push_back( (uint16_t) rint(adcCount) ); } @@ -659,27 +637,27 @@ std::vector<CscRawData*> CscOverlay::overlay( const std::map< int,std::vector<ui for ( unsigned int j=0; j<(*sig).second.size(); ++j ) { float adcCount = (*sig).second.at(j) + (*ovl).second.at(j) - pedestal ;//subtract pedestal only (data already has noise) if ( adcCount > MAX_AMPL ) { - ATH_MSG_DEBUG("value out of range (adding data+MC samples - pedestal): " << adcCount << " " - << " Setting it to max value = " << MAX_AMPL - << " IdentifierHash is " << (myhashw)); - adcCount = MAX_AMPL; + ATH_MSG_DEBUG("value out of range (adding data+MC samples - pedestal): " << adcCount << " " + << " Setting it to max value = " << MAX_AMPL + << " IdentifierHash is " << (myhashw)); + adcCount = MAX_AMPL; } samples.push_back( (uint16_t) rint(adcCount) ); } width++; used=true; } - + if ( used==false && datas.size()>0 ){ if (needtoflip(myaddress)) {myhash-=1; myaddress-=1;} else {myhash+=1; myaddress+=1;} } - + //If a break is detected in the strip cluster, start a new CscRawData object... //and adjust the hash and address, etc. if ( (used==false||i==max) && samples.size()>0){ if (datas.size()>0 && needtoflip(myaddress)) {myhash-=width; myaddress-=width;} rawData = new CscRawData( samples, myaddress, collId, spuID, width ); - rawData->setHashID(myhash); + rawData->setHashID(myhash); rawData->setTime(0);//ACH - TODO: should be made significantly more clever! datas.push_back(rawData); ATH_MSG_DEBUG("overlay<>() add datum: hash="<<myhash<<" address="<<myaddress<<" width="<<width); @@ -687,7 +665,7 @@ std::vector<CscRawData*> CscOverlay::overlay( const std::map< int,std::vector<ui if (!needtoflip(myaddress)) {myhash+=width; myaddress+=width;} width=0; } - + } ATH_MSG_DEBUG("overlay<>() end: CscRawDatas size="<<datas.size()); return datas; diff --git a/PhysicsAnalysis/TauID/TauDiscriminant/TauDiscriminant/TauEleBDT.h b/PhysicsAnalysis/TauID/TauDiscriminant/TauDiscriminant/TauEleBDT.h index a0fa3ddfb010b08abcbfa1ffad34162d297e8055..6ba37d0f400006a917049780590984ad6a168326 100644 --- a/PhysicsAnalysis/TauID/TauDiscriminant/TauDiscriminant/TauEleBDT.h +++ b/PhysicsAnalysis/TauID/TauDiscriminant/TauDiscriminant/TauEleBDT.h @@ -77,7 +77,8 @@ class TauEleBDT: virtual public TauRecToolBase virtual StatusCode executePi0CreateROI(xAOD::TauJet&, CaloCellContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePi0ClusterCreator(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&, xAOD::CaloClusterContainer&) { return StatusCode::SUCCESS;} virtual StatusCode executeVertexVariables(xAOD::TauJet&, xAOD::VertexContainer&) { return StatusCode::SUCCESS; } - virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0nPFO(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePanTau(xAOD::TauJet&, xAOD::ParticleContainer&) { return StatusCode::SUCCESS; } virtual StatusCode eventFinalize() { return StatusCode::SUCCESS; } diff --git a/PhysicsAnalysis/TauID/TauDiscriminant/TauDiscriminant/TauJetBDT.h b/PhysicsAnalysis/TauID/TauDiscriminant/TauDiscriminant/TauJetBDT.h index 4190dc44fceb2e744b99e1753e2f03ff4c711a53..6763ed98965808e4feed27ccce846c2ff03621c9 100644 --- a/PhysicsAnalysis/TauID/TauDiscriminant/TauDiscriminant/TauJetBDT.h +++ b/PhysicsAnalysis/TauID/TauDiscriminant/TauDiscriminant/TauJetBDT.h @@ -56,7 +56,8 @@ class TauJetBDT: virtual public TauRecToolBase virtual StatusCode executePi0CreateROI(xAOD::TauJet&, CaloCellContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePi0ClusterCreator(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&, xAOD::CaloClusterContainer&) { return StatusCode::SUCCESS;} virtual StatusCode executeVertexVariables(xAOD::TauJet&, xAOD::VertexContainer&) { return StatusCode::SUCCESS; } - virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0nPFO(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePanTau(xAOD::TauJet&, xAOD::ParticleContainer&) { return StatusCode::SUCCESS; } virtual StatusCode eventFinalize() { return StatusCode::SUCCESS; } diff --git a/PhysicsAnalysis/TauID/TauDiscriminant/TauDiscriminant/TauMuonVeto.h b/PhysicsAnalysis/TauID/TauDiscriminant/TauDiscriminant/TauMuonVeto.h index 7f170ab9aa123808db602b1ef8c7fd7d044a41e0..e133b7639dce24787eb04fd99495f18467a953a5 100644 --- a/PhysicsAnalysis/TauID/TauDiscriminant/TauDiscriminant/TauMuonVeto.h +++ b/PhysicsAnalysis/TauID/TauDiscriminant/TauDiscriminant/TauMuonVeto.h @@ -32,7 +32,8 @@ class TauMuonVeto: virtual public TauRecToolBase virtual StatusCode executePi0CreateROI(xAOD::TauJet&, CaloCellContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePi0ClusterCreator(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&, xAOD::CaloClusterContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executeVertexVariables(xAOD::TauJet&, xAOD::VertexContainer&) { return StatusCode::SUCCESS; } - virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0nPFO(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePanTau(xAOD::TauJet&, xAOD::ParticleContainer&) { return StatusCode::SUCCESS; } virtual StatusCode eventFinalize(){ return StatusCode::SUCCESS; } diff --git a/PhysicsAnalysis/TauID/TauDiscriminant/TauDiscriminant/TauScoreFlatteningTool.h b/PhysicsAnalysis/TauID/TauDiscriminant/TauDiscriminant/TauScoreFlatteningTool.h index 5a99ae5c5f21cb53e199eabea35dee8b6cd06b4e..1184f9bf40417e3ceb8132362ace684df39671ee 100644 --- a/PhysicsAnalysis/TauID/TauDiscriminant/TauDiscriminant/TauScoreFlatteningTool.h +++ b/PhysicsAnalysis/TauID/TauDiscriminant/TauDiscriminant/TauScoreFlatteningTool.h @@ -37,7 +37,8 @@ class TauScoreFlatteningTool: virtual public TauRecToolBase virtual StatusCode executePi0CreateROI(xAOD::TauJet&, CaloCellContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePi0ClusterCreator(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&, xAOD::CaloClusterContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executeVertexVariables(xAOD::TauJet&, xAOD::VertexContainer&) { return StatusCode::SUCCESS; } - virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0nPFO(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePanTau(xAOD::TauJet&, xAOD::ParticleContainer&) { return StatusCode::SUCCESS; } virtual StatusCode eventFinalize() { return StatusCode::SUCCESS; } diff --git a/Reconstruction/Jet/JetRecConfig/python/JetDefinition.py b/Reconstruction/Jet/JetRecConfig/python/JetDefinition.py index d13f5b0f3e983c06a9997d3fb1372412d4adcb5f..dfcb2b44acb4675e23e228f900569427545c7980 100644 --- a/Reconstruction/Jet/JetRecConfig/python/JetDefinition.py +++ b/Reconstruction/Jet/JetRecConfig/python/JetDefinition.py @@ -8,7 +8,7 @@ # # ######################################################################## -__all__ = ["JetConstit", "JetGhost", "JetDefinition","xAOD"] +__all__ = ["JetConstit", "JetGhost", "JetDefinition","xAODType"] # Code from JetRecUtils # define the convention that we write R truncating the decimal point diff --git a/Reconstruction/Jet/JetRecConfig/python/StandardJetDefs.py b/Reconstruction/Jet/JetRecConfig/python/StandardJetDefs.py index b3a883b43fa4137fbccb46d290d67316cc74ee22..4db5a37a93f12e50b8547684519447d802cfe6ee 100644 --- a/Reconstruction/Jet/JetRecConfig/python/StandardJetDefs.py +++ b/Reconstruction/Jet/JetRecConfig/python/StandardJetDefs.py @@ -17,14 +17,14 @@ ######################################################################## # Typical jet constituents -from JetDefinition import xAOD, JetConstit +from JetDefinition import xAODType, JetConstit from copy import deepcopy # Topoclusters with origin correction. # We don't currently use raw TopoClusters, though some handling # could be added to support this. -EMTopoOrigin = JetConstit(xAOD.Type.CaloCluster, ["EM","Origin"]) -LCTopoOrigin = JetConstit(xAOD.Type.CaloCluster, ["LC","Origin"]) +EMTopoOrigin = JetConstit(xAODType.CaloCluster, ["EM","Origin"]) +LCTopoOrigin = JetConstit(xAODType.CaloCluster, ["LC","Origin"]) # LC clusters with Constituent Subtraction + SoftKiller LCTopoCSSK = deepcopy(LCTopoOrigin) LCTopoCSSK.modifiers += ["CS","SK"] @@ -32,22 +32,22 @@ LCTopoCSSK.modifiers += ["CS","SK"] # EM-scale particle flow objects with charged hadron subtraction # For now we don't specify a scale, as only one works well, but # this could be incorporated into the naming scheme and config -CHSPFlow = JetConstit(xAOD.Type.ParticleFlow) +CHSPFlow = JetConstit(xAODType.ParticleFlow) # Particle Flow Objects with Constituent Subtraction + SoftKiller CSSKPFlow = deepcopy(CHSPFlow) CSSKPFlow.modifiers += ["CS","SK"] # Track particles from the primary vertex -PV0Track = JetConstit(xAOD.Type.TrackParticle,["PV0"]) +PV0Track = JetConstit(xAODType.TrackParticle,["PV0"]) # Truth particles from the hard scatter vertex prior to Geant4 simulation. # Neutrinos and muons are omitted; all other stable particles are included. -Truth = JetConstit(xAOD.Type.TruthParticle) +Truth = JetConstit(xAODType.TruthParticle) # Truth particles from the hard scatter vertex prior to Geant4 simulation. # Prompt electrons, muons and neutrinos are excluded, all other stable particles # are included, in particular leptons and neutrinos from hadron decays. -TruthWZ = JetConstit(xAOD.Type.TruthParticle,["NoWZ"]) +TruthWZ = JetConstit(xAODType.TruthParticle,["NoWZ"]) ######################################################################## # Typical jet algorithm definitions diff --git a/Reconstruction/Jet/JetRecConfig/share/JetRecTestCfg.py b/Reconstruction/Jet/JetRecConfig/share/JetRecTestCfg.py index 5397dfba6a761cd2b70884914b0888a445cbfae0..fdbbdcb49bf2db746123fbdc6feb87e8a2e6c29d 100644 --- a/Reconstruction/Jet/JetRecConfig/share/JetRecTestCfg.py +++ b/Reconstruction/Jet/JetRecConfig/share/JetRecTestCfg.py @@ -77,8 +77,8 @@ def DefineJetCollections(): ######################################################################## # Now we define our own definitions - from JetRecConfig.JetDefinition import JetConstit, JetDefinition, xAOD - LCTopoCSSK = JetConstit(xAOD.Type.CaloCluster, ["LC","Origin","CS","SK"]) + from JetRecConfig.JetDefinition import JetConstit, JetDefinition, xAODType + LCTopoCSSK = JetConstit(xAODType.CaloCluster, ["LC","Origin","CS","SK"]) AntiKt4LCTopoCSSK = JetDefinition("AntiKt",0.4,LCTopoCSSK,ptmin=2e3,ptminfilter=2e3) AntiKt4LCTopoCSSK.modifiers = ["ConstitFourMom"] + standardrecomods + clustermods + truthmods AntiKt4LCTopoCSSK.ghostdefs = standardghosts @@ -179,7 +179,7 @@ if __name__=="__main__": # Write what we produced to AOD # First define the output list - outputlist = [] + outputlist = ["EventInfo#*"] originaljets = ["AntiKt4EMPFlowJets"] for jetcoll in originaljets: outputlist += ["xAOD::JetContainer#"+jetcoll, @@ -189,10 +189,10 @@ if __name__=="__main__": outputlist += ["xAOD::JetContainer#"+key, "xAOD::JetAuxContainer#"+key+"Aux."] - # # Now get the output stream components - # from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg - # cfg.merge(OutputStreamCfg(ConfigFlags,"xAOD",ItemList=outputlist)) - # pprint( cfg.getEventAlgo("OutputStreamxAOD").ItemList ) + # Now get the output stream components + from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg + cfg.merge(OutputStreamCfg(ConfigFlags,"xAOD",ItemList=outputlist)) + pprint( cfg.getEventAlgo("OutputStreamxAOD").ItemList ) # Optionally, print the contents of the store every event cfg.getService("StoreGateSvc").Dump = args.dumpSG diff --git a/Reconstruction/MuonIdentification/MuonCombinedRecExample/python/MuonCombinedRecOnlySetup.py b/Reconstruction/MuonIdentification/MuonCombinedRecExample/python/MuonCombinedRecOnlySetup.py index 9e96c4c99f652a30f6f29506555b5c59698151b6..93929a30c88e0136f7b3dc8a01c89c536c239017 100644 --- a/Reconstruction/MuonIdentification/MuonCombinedRecExample/python/MuonCombinedRecOnlySetup.py +++ b/Reconstruction/MuonIdentification/MuonCombinedRecExample/python/MuonCombinedRecOnlySetup.py @@ -34,6 +34,7 @@ recFlags.doLArg = True recFlags.doTile = True # do not run digitization DetFlags.digitize.all_setOff() +DetFlags.overlay.Muon_setOff() recAlgsFlags.doEFlowJet = False diff --git a/Reconstruction/PanTau/PanTauAlgs/PanTauAlgs/PanTauProcessor.h b/Reconstruction/PanTau/PanTauAlgs/PanTauAlgs/PanTauProcessor.h index 44e0e9ea21d262c2fa6f6577cc709988ec1ea3ff..70cc5c19fe1dc496a212fde042c86f369be15d8e 100644 --- a/Reconstruction/PanTau/PanTauAlgs/PanTauAlgs/PanTauProcessor.h +++ b/Reconstruction/PanTau/PanTauAlgs/PanTauAlgs/PanTauProcessor.h @@ -62,7 +62,8 @@ namespace PanTau virtual StatusCode executePi0CreateROI(xAOD::TauJet&, CaloCellContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePi0ClusterCreator(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&, xAOD::CaloClusterContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executeVertexVariables(xAOD::TauJet&, xAOD::VertexContainer&) { return StatusCode::SUCCESS; } - virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0nPFO(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePanTau(xAOD::TauJet& pTau, xAOD::ParticleContainer& pi0Container); virtual StatusCode eventInitialize(); diff --git a/Reconstruction/eflowRec/src/PFTrackSelector.cxx b/Reconstruction/eflowRec/src/PFTrackSelector.cxx index 41af12815ed0258a92d1076479a9b917359c10f0..001344d3a907ae9be63697d94cafbaf3ded4239b 100644 --- a/Reconstruction/eflowRec/src/PFTrackSelector.cxx +++ b/Reconstruction/eflowRec/src/PFTrackSelector.cxx @@ -76,27 +76,8 @@ StatusCode PFTrackSelector::execute(){ StatusCode PFTrackSelector::finalize(){return StatusCode::SUCCESS;} bool PFTrackSelector::selectTrack(const xAOD::TrackParticle& track) { - if (track.pt()*0.001 < m_upperTrackPtCut) - { - const xAOD::Vertex* foundVertex { nullptr }; - SG::ReadHandle<xAOD::VertexContainer> vertices { m_vertexKey }; - if (vertices.isValid()) - { - for ( const auto& vx : *vertices ) - { - for ( const auto& tpLink : vx->trackParticleLinks() ) - { - if ( *tpLink == &track ) - { - foundVertex = vx; - break; - } - } - if (foundVertex) break; - } - } - return static_cast<bool>(m_trackSelectorTool->accept(track, foundVertex)); - } + //We pass a null xAOD::Vertex pointer to accept here, the vertex is only needed if z0 cuts are applied (which they are not) + if (track.pt()*0.001 < m_upperTrackPtCut) return static_cast<bool>(m_trackSelectorTool->accept(track, nullptr)); else return false; } diff --git a/Reconstruction/tauRec/src/TauRunnerAlg.cxx b/Reconstruction/tauRec/src/TauRunnerAlg.cxx index 3d102b9b03a7331973b666c9cb36be703acaf2f8..965d10a05b086439514dc04819f577b5a63acb76 100644 --- a/Reconstruction/tauRec/src/TauRunnerAlg.cxx +++ b/Reconstruction/tauRec/src/TauRunnerAlg.cxx @@ -231,7 +231,13 @@ StatusCode TauRunnerAlg::execute() { sc = (*itT)->executeVertexVariables(*pTau, *pSecVtxContainer); } else if ( (*itT)->name().find("Pi0ClusterScaler") != std::string::npos){ - sc = (*itT)->executePi0ClusterScaler(*pTau, *chargedPFOContainer); + sc = (*itT)->executePi0ClusterScaler(*pTau, *neutralPFOContainer, *chargedPFOContainer); + } + else if ( (*itT)->name().find("Pi0ScoreCalculator") != std::string::npos){ + sc = (*itT)->executePi0nPFO(*pTau, *neutralPFOContainer); + } + else if ( (*itT)->name().find("Pi0Selector") != std::string::npos){ + sc = (*itT)->executePi0nPFO(*pTau, *neutralPFOContainer); } else if ( (*itT)->name().find("PanTau") != std::string::npos){ sc = (*itT)->executePanTau(*pTau, *pi0Container); diff --git a/Reconstruction/tauRecTools/Root/TauPi0ClusterScaler.cxx b/Reconstruction/tauRecTools/Root/TauPi0ClusterScaler.cxx index bd2048c6c8afd4b8ca323c02a4b4ddccda019cf1..9f337ebb977171ff4093fb5d121c46603a738604 100644 --- a/Reconstruction/tauRecTools/Root/TauPi0ClusterScaler.cxx +++ b/Reconstruction/tauRecTools/Root/TauPi0ClusterScaler.cxx @@ -56,7 +56,7 @@ StatusCode TauPi0ClusterScaler::finalize() } -StatusCode TauPi0ClusterScaler::executePi0ClusterScaler(xAOD::TauJet& pTau, xAOD::PFOContainer& chargedPFOContainer) +StatusCode TauPi0ClusterScaler::executePi0ClusterScaler(xAOD::TauJet& pTau, xAOD::PFOContainer& neutralPFOContainer, xAOD::PFOContainer& chargedPFOContainer) { // Clear vector of cell-based charged PFO Links. // Required when rerunning on xAOD level. @@ -72,32 +72,27 @@ StatusCode TauPi0ClusterScaler::executePi0ClusterScaler(xAOD::TauJet& pTau, xAOD << ", nprongs = " << pTau.nTracks()); // reset neutral PFO kinematics (incase re-run on AOD) - resetNeutralPFOs(pTau); + resetNeutralPFOs(pTau, neutralPFOContainer); // create new proto charged PFOs, extrapolate tracks, add to tau createChargedPFOs(pTau, chargedPFOContainer); // associate hadronic PFOs to charged PFOs using extrapolated positions in HCal - associateHadronicToChargedPFOs(pTau); + associateHadronicToChargedPFOs(pTau, chargedPFOContainer); // associate charged PFOs to neutral PFOs using extrapolated positions in ECal - associateChargedToNeutralPFOs(pTau); + associateChargedToNeutralPFOs(pTau, neutralPFOContainer); // estimate charged PFO EM energy and subtract from neutral PFOs - subtractChargedEnergyFromNeutralPFOs(pTau); + subtractChargedEnergyFromNeutralPFOs(neutralPFOContainer); ATH_MSG_DEBUG("End of TauPi0ClusterScaler::execute"); return StatusCode::SUCCESS; } -void TauPi0ClusterScaler::resetNeutralPFOs(xAOD::TauJet& pTau) +void TauPi0ClusterScaler::resetNeutralPFOs(xAOD::TauJet& pTau, xAOD::PFOContainer& neutralPFOContainer) { // Set neutral PFO kinematics to vertex corrected cluster ATH_MSG_DEBUG("Resetting neutral PFO kinematics"); - for( auto neutralPFOLink : pTau.protoNeutralPFOLinks() ) + for( auto pfo : neutralPFOContainer ) { - if( not neutralPFOLink.isValid() ){ - ATH_MSG_WARNING("Invalid protoNeutralPFOLink"); - continue; - } - xAOD::PFO* pfo = const_cast<xAOD::PFO*>(*neutralPFOLink); const xAOD::CaloCluster* cl = pfo->cluster(0); // apply cluster vertex correction @@ -147,7 +142,7 @@ void TauPi0ClusterScaler::createChargedPFOs(xAOD::TauJet& pTau, xAOD::PFOContain } } -void TauPi0ClusterScaler::associateHadronicToChargedPFOs(xAOD::TauJet& pTau) +void TauPi0ClusterScaler::associateHadronicToChargedPFOs(xAOD::TauJet& pTau, xAOD::PFOContainer& chargedPFOContainer) { ATH_MSG_DEBUG("Associating hadronic PFOs to charged PFOs"); @@ -166,13 +161,7 @@ void TauPi0ClusterScaler::associateHadronicToChargedPFOs(xAOD::TauJet& pTau) xAOD::PFO* chargedPFOMatch = 0; // assign hadPFO to closest extrapolated chargedPFO track within dR<0.4 float dRmin = 0.4; - for( auto chargedPFOLink : pTau.protoChargedPFOLinks() ){ - if( not chargedPFOLink.isValid() ){ - ATH_MSG_WARNING("Invalid protoChargedPFOLink"); - continue; - } - xAOD::PFO* chargedPFO = const_cast<xAOD::PFO*>(*chargedPFOLink); - + for( auto chargedPFO : chargedPFOContainer ){ // get extrapolated positions from tau-track std::vector<const xAOD::IParticle*> tauTrackPcleVec; chargedPFO->associatedParticles(xAOD::PFODetails::CaloCluster, tauTrackPcleVec); @@ -231,7 +220,7 @@ void TauPi0ClusterScaler::associateHadronicToChargedPFOs(xAOD::TauJet& pTau) } } -void TauPi0ClusterScaler::associateChargedToNeutralPFOs(xAOD::TauJet& pTau) +void TauPi0ClusterScaler::associateChargedToNeutralPFOs(xAOD::TauJet& pTau, xAOD::PFOContainer& neutralPFOContainer) { ATH_MSG_DEBUG("Associating charged PFOs to neutral PFOs"); // Will: I'm ashamed of this link-map, but its necessary until the @@ -270,12 +259,7 @@ void TauPi0ClusterScaler::associateChargedToNeutralPFOs(xAOD::TauJet& pTau) // assign extrapolated chargedPFO to closest neutralPFO within dR<0.04 xAOD::PFO* neutralPFOMatch = 0; float dRmin = 0.04; - for( auto neutralPFOLink : pTau.protoNeutralPFOLinks() ){ - if( not neutralPFOLink.isValid() ){ - ATH_MSG_WARNING("Invalid protoNeutralPFOLink"); - continue; - } - xAOD::PFO* neutralPFO = const_cast<xAOD::PFO*>(*neutralPFOLink); + for( auto neutralPFO : neutralPFOContainer ){ // calculate dR (false means use eta instead of rapidity) float dR = xAOD::P4Helpers::deltaR((*neutralPFO->cluster(0)), etaCalo, phiCalo, false); ATH_MSG_DEBUG("neutralPFO, eta: " << neutralPFO->cluster(0)->eta() @@ -315,17 +299,11 @@ void TauPi0ClusterScaler::associateChargedToNeutralPFOs(xAOD::TauJet& pTau) } -void TauPi0ClusterScaler::subtractChargedEnergyFromNeutralPFOs(xAOD::TauJet& pTau) +void TauPi0ClusterScaler::subtractChargedEnergyFromNeutralPFOs(xAOD::PFOContainer& neutralPFOContainer) { ATH_MSG_DEBUG("Subtracting charged energy from neutral PFOs"); - for( auto neutralPFOLink : pTau.protoNeutralPFOLinks() ) + for( auto neutralPFO : neutralPFOContainer ) { - if( not neutralPFOLink.isValid() ){ - ATH_MSG_WARNING("Invalid protoNeutralPFOLink"); - continue; - } - xAOD::PFO* neutralPFO = const_cast<xAOD::PFO*>(*neutralPFOLink); - // get associated charged PFOs std::vector<const xAOD::IParticle*> chargedPFOs; neutralPFO->associatedParticles(xAOD::PFODetails::Track, chargedPFOs); diff --git a/Reconstruction/tauRecTools/Root/TauPi0ScoreCalculator.cxx b/Reconstruction/tauRecTools/Root/TauPi0ScoreCalculator.cxx index 0b9ca0672b43c1c55df0b901768a322c802018e4..d559059911d176cf3d3b024413749785de51565e 100644 --- a/Reconstruction/tauRecTools/Root/TauPi0ScoreCalculator.cxx +++ b/Reconstruction/tauRecTools/Root/TauPi0ScoreCalculator.cxx @@ -102,7 +102,7 @@ StatusCode TauPi0ScoreCalculator::finalize() } -StatusCode TauPi0ScoreCalculator::execute(xAOD::TauJet& pTau) +StatusCode TauPi0ScoreCalculator::executePi0nPFO(xAOD::TauJet& pTau, xAOD::PFOContainer& neutralPFOContainer) { //--------------------------------------------------------------------- // only run on 1-5 prong taus @@ -115,15 +115,10 @@ StatusCode TauPi0ScoreCalculator::execute(xAOD::TauJet& pTau) //--------------------------------------------------------------------- // retrieve neutral PFOs from tau, calculate BDT scores and store them in PFO //--------------------------------------------------------------------- - for( auto neutralPFOLink : pTau.protoNeutralPFOLinks() ) + for( auto neutralPFO : neutralPFOContainer ) { - if( not neutralPFOLink.isValid() ){ - ATH_MSG_WARNING("Invalid protoNeutralPFOLink"); - continue; - } - float BDTScore = calculateScore(*neutralPFOLink); - xAOD::PFO* neutralPFO = const_cast<xAOD::PFO*>(*neutralPFOLink); - neutralPFO->setBDTPi0Score((float) BDTScore); + float BDTScore = calculateScore(neutralPFO); + neutralPFO->setBDTPi0Score((float) BDTScore); } ATH_MSG_DEBUG("End of TauPi0ScoreCalculator::execute"); diff --git a/Reconstruction/tauRecTools/Root/TauPi0Selector.cxx b/Reconstruction/tauRecTools/Root/TauPi0Selector.cxx index 0ee133455b72530ea10791203bca3fd98d964329..ec648fd2743f9a96f0e6098c39d02a92d810fc83 100644 --- a/Reconstruction/tauRecTools/Root/TauPi0Selector.cxx +++ b/Reconstruction/tauRecTools/Root/TauPi0Selector.cxx @@ -46,7 +46,7 @@ StatusCode TauPi0Selector::finalize() return StatusCode::SUCCESS; } -StatusCode TauPi0Selector::execute(xAOD::TauJet& pTau) +StatusCode TauPi0Selector::executePi0nPFO(xAOD::TauJet& pTau, xAOD::PFOContainer& neutralPFOContainer) { // decay mode enum auto kDecayModeProto = xAOD::TauJetParameters::PanTau_DecayModeProto; @@ -70,14 +70,8 @@ StatusCode TauPi0Selector::execute(xAOD::TauJet& pTau) // Pi0NeutralPFOs //--------------------------------------------------------------------- int nRecoPi0s=0; - for( auto neutralPFOLink : pTau.protoNeutralPFOLinks() ) + for( auto neutralPFO : neutralPFOContainer ) { - if( not neutralPFOLink.isValid() ){ - ATH_MSG_WARNING("Invalid protoNeutralPFOLink"); - continue; - } - xAOD::PFO* neutralPFO = const_cast<xAOD::PFO*>(*neutralPFOLink); - // Set number of pi0s to 0 for all neutral PFOs. Required when rerunning on xAOD level neutralPFO->setAttribute<int>(xAOD::PFODetails::PFOAttributes::nPi0Proto, 0); @@ -111,7 +105,7 @@ StatusCode TauPi0Selector::execute(xAOD::TauJet& pTau) } // Set element link to Pi0tagged PFO - pTau.addProtoPi0PFOLink(neutralPFOLink); + pTau.addProtoPi0PFOLink(ElementLink< xAOD::PFOContainer > (neutralPFO, neutralPFOContainer)); } // Calculate visTau TLV and store it in pPi0Details. TLorentzVector p4 = getP4(pTau); diff --git a/Reconstruction/tauRecTools/src/JetSeedBuilder.h b/Reconstruction/tauRecTools/src/JetSeedBuilder.h index 2e80b07949a4ba4e16b0eedf51991a56d6f11397..c9e639576af43a6d8d4c821cb2ebee0de97a3a04 100644 --- a/Reconstruction/tauRecTools/src/JetSeedBuilder.h +++ b/Reconstruction/tauRecTools/src/JetSeedBuilder.h @@ -45,7 +45,8 @@ public: virtual StatusCode executePi0CreateROI(xAOD::TauJet&, CaloCellContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePi0ClusterCreator(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&, xAOD::CaloClusterContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executeVertexVariables(xAOD::TauJet&, xAOD::VertexContainer&) { return StatusCode::SUCCESS; } - virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0nPFO(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePanTau(xAOD::TauJet&, xAOD::ParticleContainer&) { return StatusCode::SUCCESS; } virtual StatusCode eventFinalize(); diff --git a/Reconstruction/tauRecTools/src/LockTauContainers.h b/Reconstruction/tauRecTools/src/LockTauContainers.h index 5fc1f3caf0539d8fd359f106420442d6dbfe199e..0ffc54af5cdea0701fab5c7b4c68edd50942617e 100644 --- a/Reconstruction/tauRecTools/src/LockTauContainers.h +++ b/Reconstruction/tauRecTools/src/LockTauContainers.h @@ -29,7 +29,8 @@ class LockTauContainers : public TauRecToolBase virtual StatusCode executePi0CreateROI(xAOD::TauJet&, CaloCellContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePi0ClusterCreator(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&, xAOD::CaloClusterContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executeVertexVariables(xAOD::TauJet&, xAOD::VertexContainer&) { return StatusCode::SUCCESS; } - virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0nPFO(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePanTau(xAOD::TauJet&, xAOD::ParticleContainer&) { return StatusCode::SUCCESS; } virtual StatusCode eventFinalize(); virtual StatusCode eventInitialize() { return StatusCode::SUCCESS; } diff --git a/Reconstruction/tauRecTools/src/PhotonConversionPID.h b/Reconstruction/tauRecTools/src/PhotonConversionPID.h index f5b460202b839108a212a6dab23325e61320680b..d61cb81e5b7d334dec2370f2183a1a03befc5b5e 100644 --- a/Reconstruction/tauRecTools/src/PhotonConversionPID.h +++ b/Reconstruction/tauRecTools/src/PhotonConversionPID.h @@ -37,7 +37,8 @@ public: virtual StatusCode executePi0CreateROI(xAOD::TauJet&, CaloCellContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePi0ClusterCreator(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&, xAOD::CaloClusterContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executeVertexVariables(xAOD::TauJet&, xAOD::VertexContainer&) { return StatusCode::SUCCESS; } - virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0nPFO(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePanTau(xAOD::TauJet&, xAOD::ParticleContainer&) { return StatusCode::SUCCESS; } virtual StatusCode eventInitialize() { return StatusCode::SUCCESS; } diff --git a/Reconstruction/tauRecTools/src/PhotonConversionVertex.h b/Reconstruction/tauRecTools/src/PhotonConversionVertex.h index 622e8226f0e3d87f5e931a391828e62e6235ce9e..e5cae14f79c4b189ba41ad2de6b4d4954412f285 100644 --- a/Reconstruction/tauRecTools/src/PhotonConversionVertex.h +++ b/Reconstruction/tauRecTools/src/PhotonConversionVertex.h @@ -51,8 +51,9 @@ public: virtual StatusCode executeShotFinder(xAOD::TauJet&, xAOD::CaloClusterContainer&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePi0CreateROI(xAOD::TauJet&, CaloCellContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePi0ClusterCreator(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&, xAOD::CaloClusterContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0nPFO(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executeVertexVariables(xAOD::TauJet&, xAOD::VertexContainer&) { return StatusCode::SUCCESS; } - virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePanTau(xAOD::TauJet&, xAOD::ParticleContainer&) { return StatusCode::SUCCESS; } virtual void print() const { } diff --git a/Reconstruction/tauRecTools/src/TauAxisSetter.h b/Reconstruction/tauRecTools/src/TauAxisSetter.h index 56e7796ea7c8b395703c9c04998faecfd031f2d7..e509670406305e1bf293ae114df684655ceb466f 100644 --- a/Reconstruction/tauRecTools/src/TauAxisSetter.h +++ b/Reconstruction/tauRecTools/src/TauAxisSetter.h @@ -37,7 +37,8 @@ public: virtual StatusCode executePi0CreateROI(xAOD::TauJet&, CaloCellContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePi0ClusterCreator(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&, xAOD::CaloClusterContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executeVertexVariables(xAOD::TauJet&, xAOD::VertexContainer&) { return StatusCode::SUCCESS; } - virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0nPFO(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePanTau(xAOD::TauJet&, xAOD::ParticleContainer&) { return StatusCode::SUCCESS; } virtual void print() const { } diff --git a/Reconstruction/tauRecTools/src/TauCalibrateEM.h b/Reconstruction/tauRecTools/src/TauCalibrateEM.h index 58bc81aa1c21535338470d1603194631520f07ac..e8a1b4dd27b405291dcd5c68a86b03704207397a 100644 --- a/Reconstruction/tauRecTools/src/TauCalibrateEM.h +++ b/Reconstruction/tauRecTools/src/TauCalibrateEM.h @@ -23,7 +23,8 @@ public: virtual StatusCode executePi0CreateROI(xAOD::TauJet&, CaloCellContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePi0ClusterCreator(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&, xAOD::CaloClusterContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executeVertexVariables(xAOD::TauJet&, xAOD::VertexContainer&) { return StatusCode::SUCCESS; } - virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0nPFO(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePanTau(xAOD::TauJet&, xAOD::ParticleContainer&) { return StatusCode::SUCCESS; } virtual StatusCode finalize(); diff --git a/Reconstruction/tauRecTools/src/TauCellVariables.h b/Reconstruction/tauRecTools/src/TauCellVariables.h index 56cb9579dad1f1261d98c10692ab6da026acde8f..425187ec35a62e0c361e17be1f48cbe2eecf32e8 100644 --- a/Reconstruction/tauRecTools/src/TauCellVariables.h +++ b/Reconstruction/tauRecTools/src/TauCellVariables.h @@ -32,7 +32,8 @@ public: virtual StatusCode executePi0CreateROI(xAOD::TauJet&, CaloCellContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePi0ClusterCreator(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&, xAOD::CaloClusterContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executeVertexVariables(xAOD::TauJet&, xAOD::VertexContainer&) { return StatusCode::SUCCESS; } - virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0nPFO(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePanTau(xAOD::TauJet&, xAOD::ParticleContainer&) { return StatusCode::SUCCESS; } virtual void print() const { } diff --git a/Reconstruction/tauRecTools/src/TauConversionFinder.h b/Reconstruction/tauRecTools/src/TauConversionFinder.h index 15fee03b6b40ee10bcbe3f790d5cf8f2100dda4c..460f5b3521aeb7f0c34716019278c1ea1f2017db 100644 --- a/Reconstruction/tauRecTools/src/TauConversionFinder.h +++ b/Reconstruction/tauRecTools/src/TauConversionFinder.h @@ -35,8 +35,9 @@ public: virtual StatusCode executePi0CreateROI(xAOD::TauJet&, CaloCellContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePi0ClusterCreator(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&, xAOD::CaloClusterContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executeVertexVariables(xAOD::TauJet&, xAOD::VertexContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0nPFO(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePanTau(xAOD::TauJet&, xAOD::ParticleContainer&) { return StatusCode::SUCCESS; } - virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } virtual void print() const { } diff --git a/Reconstruction/tauRecTools/src/TauConversionTagger.h b/Reconstruction/tauRecTools/src/TauConversionTagger.h index a1e4b84a05139f8b7093d6e98dea5d8100b04cce..885b33e4321b27adc709a33c30973758be283600 100644 --- a/Reconstruction/tauRecTools/src/TauConversionTagger.h +++ b/Reconstruction/tauRecTools/src/TauConversionTagger.h @@ -36,7 +36,8 @@ public: virtual StatusCode executePi0CreateROI(xAOD::TauJet&, CaloCellContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePi0ClusterCreator(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&, xAOD::CaloClusterContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executeVertexVariables(xAOD::TauJet&, xAOD::VertexContainer&) { return StatusCode::SUCCESS; } - virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0nPFO(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePanTau(xAOD::TauJet&, xAOD::ParticleContainer&) { return StatusCode::SUCCESS; } virtual StatusCode finalize(); virtual StatusCode eventInitialize() { return StatusCode::SUCCESS; } diff --git a/Reconstruction/tauRecTools/src/TauElectronVetoVariables.h b/Reconstruction/tauRecTools/src/TauElectronVetoVariables.h index 66fd341882fce3756387355680a1e63bf6c10124..7414f75a0f9b07d0a50da914e1a07be2a5e3b183 100644 --- a/Reconstruction/tauRecTools/src/TauElectronVetoVariables.h +++ b/Reconstruction/tauRecTools/src/TauElectronVetoVariables.h @@ -32,7 +32,8 @@ public: virtual StatusCode executePi0CreateROI(xAOD::TauJet&, CaloCellContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePi0ClusterCreator(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&, xAOD::CaloClusterContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executeVertexVariables(xAOD::TauJet&, xAOD::VertexContainer&) { return StatusCode::SUCCESS; } - virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0nPFO(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePanTau(xAOD::TauJet&, xAOD::ParticleContainer&) { return StatusCode::SUCCESS; } virtual StatusCode initialize(); virtual StatusCode finalize(); diff --git a/Reconstruction/tauRecTools/src/TauPi0ClusterCreator.h b/Reconstruction/tauRecTools/src/TauPi0ClusterCreator.h index 7e9e40d219ea01e6ade1292ad5cc53a5b30dbc19..a12424fc18d246c7b9cfd75eb029281edf9c63d8 100644 --- a/Reconstruction/tauRecTools/src/TauPi0ClusterCreator.h +++ b/Reconstruction/tauRecTools/src/TauPi0ClusterCreator.h @@ -35,7 +35,8 @@ public: virtual StatusCode executePi0ClusterCreator(xAOD::TauJet& pTau, xAOD::PFOContainer& neutralPFOContainer, xAOD::PFOContainer& hadronicClusterPFOContainer, xAOD::CaloClusterContainer& pi0CaloClusContainer); virtual StatusCode executeVertexVariables(xAOD::TauJet&, xAOD::VertexContainer&) { return StatusCode::SUCCESS; } - virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0nPFO(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePanTau(xAOD::TauJet&, xAOD::ParticleContainer&) { return StatusCode::SUCCESS; } virtual StatusCode eventFinalize(); diff --git a/Reconstruction/tauRecTools/src/TauPi0CreateROI.h b/Reconstruction/tauRecTools/src/TauPi0CreateROI.h index 37228b348fc8c3b79f985a74dda833d846c19598..e2532b33090abb91310ccf4e50fde2b85e464bc5 100644 --- a/Reconstruction/tauRecTools/src/TauPi0CreateROI.h +++ b/Reconstruction/tauRecTools/src/TauPi0CreateROI.h @@ -37,7 +37,8 @@ public: virtual StatusCode executePi0CreateROI(xAOD::TauJet& pTau, CaloCellContainer& Pi0CellContainer); virtual StatusCode executePi0ClusterCreator(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&, xAOD::CaloClusterContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executeVertexVariables(xAOD::TauJet&, xAOD::VertexContainer&) { return StatusCode::SUCCESS; } - virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0nPFO(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePanTau(xAOD::TauJet&, xAOD::ParticleContainer&) { return StatusCode::SUCCESS; } virtual StatusCode eventFinalize(); virtual StatusCode finalize(); diff --git a/Reconstruction/tauRecTools/src/TauShotFinder.h b/Reconstruction/tauRecTools/src/TauShotFinder.h index 0ef4ed0d6e95d3f43fe1247bf665c69dc9e83c7d..7293d92a7d977c69b73a51270c82183e1d70ed4d 100644 --- a/Reconstruction/tauRecTools/src/TauShotFinder.h +++ b/Reconstruction/tauRecTools/src/TauShotFinder.h @@ -46,7 +46,8 @@ public: virtual StatusCode executePi0CreateROI(xAOD::TauJet&, CaloCellContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePi0ClusterCreator(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&, xAOD::CaloClusterContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executeVertexVariables(xAOD::TauJet&, xAOD::VertexContainer&) { return StatusCode::SUCCESS; } - virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0nPFO(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePanTau(xAOD::TauJet&, xAOD::ParticleContainer&) { return StatusCode::SUCCESS; } virtual StatusCode execute(xAOD::TauJet&){ return StatusCode::SUCCESS; }; virtual StatusCode eventFinalize(); diff --git a/Reconstruction/tauRecTools/src/TauTestDump.h b/Reconstruction/tauRecTools/src/TauTestDump.h index 2639786ad955168bec3a7e7be022f59ddb63d8a4..11a2d40c78774696eb0cfc9d8b3845b27708e45f 100644 --- a/Reconstruction/tauRecTools/src/TauTestDump.h +++ b/Reconstruction/tauRecTools/src/TauTestDump.h @@ -31,7 +31,8 @@ public: virtual StatusCode executePi0CreateROI(xAOD::TauJet&, CaloCellContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePi0ClusterCreator(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&, xAOD::CaloClusterContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executeVertexVariables(xAOD::TauJet&, xAOD::VertexContainer&) { return StatusCode::SUCCESS; } - virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0nPFO(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePanTau(xAOD::TauJet&, xAOD::ParticleContainer&) { return StatusCode::SUCCESS; } virtual StatusCode finalize(); virtual StatusCode eventInitialize() { return StatusCode::SUCCESS; } diff --git a/Reconstruction/tauRecTools/src/TauTrackFinder.h b/Reconstruction/tauRecTools/src/TauTrackFinder.h index 0b9debba38094b9d0821d5fc3da3f37f735e1de6..9d9aa1a2d766bd8802ba6b1658a57dd5407a84c5 100644 --- a/Reconstruction/tauRecTools/src/TauTrackFinder.h +++ b/Reconstruction/tauRecTools/src/TauTrackFinder.h @@ -66,7 +66,8 @@ public: virtual StatusCode executePi0CreateROI(xAOD::TauJet&, CaloCellContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePi0ClusterCreator(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&, xAOD::CaloClusterContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executeVertexVariables(xAOD::TauJet&, xAOD::VertexContainer&) { return StatusCode::SUCCESS; } - virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0nPFO(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePanTau(xAOD::TauJet&, xAOD::ParticleContainer&) { return StatusCode::SUCCESS; } virtual StatusCode eventFinalize(); virtual StatusCode finalize(); diff --git a/Reconstruction/tauRecTools/src/TauVertexFinder.h b/Reconstruction/tauRecTools/src/TauVertexFinder.h index bb65bda3f43be91fd259f28e42fa92791350a4e3..8410ef831782202a3e9a5841d0111eb692ac4bc0 100644 --- a/Reconstruction/tauRecTools/src/TauVertexFinder.h +++ b/Reconstruction/tauRecTools/src/TauVertexFinder.h @@ -46,7 +46,8 @@ public: virtual StatusCode executePi0CreateROI(xAOD::TauJet&, CaloCellContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePi0ClusterCreator(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&, xAOD::CaloClusterContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executeVertexVariables(xAOD::TauJet&, xAOD::VertexContainer&) { return StatusCode::SUCCESS; } - virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0nPFO(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePanTau(xAOD::TauJet&, xAOD::ParticleContainer&) { return StatusCode::SUCCESS; } virtual StatusCode eventFinalize(); virtual StatusCode finalize(); diff --git a/Reconstruction/tauRecTools/src/TauVertexVariables.h b/Reconstruction/tauRecTools/src/TauVertexVariables.h index 8c471e8f38bc31f60cb9eea291f5eded2acd122d..c0f919298f1de9972962c17930a543001fce0201 100644 --- a/Reconstruction/tauRecTools/src/TauVertexVariables.h +++ b/Reconstruction/tauRecTools/src/TauVertexVariables.h @@ -40,7 +40,8 @@ public: virtual StatusCode executePi0CreateROI(xAOD::TauJet&, CaloCellContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePi0ClusterCreator(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&, xAOD::CaloClusterContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executeVertexVariables(xAOD::TauJet& pTau, xAOD::VertexContainer& pVertexContainer); - virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0nPFO(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePanTau(xAOD::TauJet&, xAOD::ParticleContainer&) { return StatusCode::SUCCESS; } virtual StatusCode eventInitialize(); virtual StatusCode finalize(); diff --git a/Reconstruction/tauRecTools/tauRecTools/CombinedP4FromRecoTaus.h b/Reconstruction/tauRecTools/tauRecTools/CombinedP4FromRecoTaus.h index 43f2a63311a87f8169668092ad04df25f0e88db5..03e339b7f28312295d557afd44181d9e8332ee9c 100644 --- a/Reconstruction/tauRecTools/tauRecTools/CombinedP4FromRecoTaus.h +++ b/Reconstruction/tauRecTools/tauRecTools/CombinedP4FromRecoTaus.h @@ -76,7 +76,8 @@ class CombinedP4FromRecoTaus virtual StatusCode executePi0CreateROI(xAOD::TauJet&, CaloCellContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePi0ClusterCreator(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&, xAOD::CaloClusterContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executeVertexVariables(xAOD::TauJet&, xAOD::VertexContainer&) { return StatusCode::SUCCESS; } - virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0nPFO(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePanTau(xAOD::TauJet&, xAOD::ParticleContainer&) { return StatusCode::SUCCESS; } diff --git a/Reconstruction/tauRecTools/tauRecTools/ITauToolBase.h b/Reconstruction/tauRecTools/tauRecTools/ITauToolBase.h index a4ae90bc7f12348f0d32f7b6aa74d2c47f5a0b92..1b11980a5bd4375477ce2101dbefe32759cd044f 100644 --- a/Reconstruction/tauRecTools/tauRecTools/ITauToolBase.h +++ b/Reconstruction/tauRecTools/tauRecTools/ITauToolBase.h @@ -46,7 +46,8 @@ class ITauToolBase : virtual public asg::IAsgTool virtual StatusCode executePi0ClusterCreator(xAOD::TauJet& pTau, xAOD::PFOContainer& neutralPFOContainer, xAOD::PFOContainer& hadronicPFOContainer, xAOD::CaloClusterContainer& caloClusterContainer ) = 0; virtual StatusCode executeVertexVariables(xAOD::TauJet& pTau, xAOD::VertexContainer& vertexContainer ) = 0; - virtual StatusCode executePi0ClusterScaler(xAOD::TauJet& pTau, xAOD::PFOContainer& PFOContainer ) = 0; + virtual StatusCode executePi0ClusterScaler(xAOD::TauJet& pTau, xAOD::PFOContainer& neutralPFOContainer, xAOD::PFOContainer& chargedPFOContainer ) = 0; + virtual StatusCode executePi0nPFO(xAOD::TauJet& pTau, xAOD::PFOContainer& neutralPFOContainer) = 0; virtual StatusCode executePanTau(xAOD::TauJet& pTau, xAOD::ParticleContainer& particleContainer) =0; //----------------------------------------------------------------- diff --git a/Reconstruction/tauRecTools/tauRecTools/MvaTESEvaluator.h b/Reconstruction/tauRecTools/tauRecTools/MvaTESEvaluator.h index f5e54ca33bb37f2af6155659e44567924b9c8ab2..dca3938ece5514c8798383980b8986c761c74eb5 100644 --- a/Reconstruction/tauRecTools/tauRecTools/MvaTESEvaluator.h +++ b/Reconstruction/tauRecTools/tauRecTools/MvaTESEvaluator.h @@ -28,7 +28,8 @@ class MvaTESEvaluator StatusCode executePi0CreateROI(xAOD::TauJet&, CaloCellContainer&) { return StatusCode::SUCCESS; } StatusCode executePi0ClusterCreator(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&, xAOD::CaloClusterContainer&) { return StatusCode::SUCCESS; } StatusCode executeVertexVariables(xAOD::TauJet&, xAOD::VertexContainer&) { return StatusCode::SUCCESS; } - StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + StatusCode executePi0nPFO(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } StatusCode executePanTau(xAOD::TauJet&, xAOD::ParticleContainer&) { return StatusCode::SUCCESS; } //StatusCode finalize() { delete m_reader; return StatusCode::SUCCESS;} StatusCode finalize() { return StatusCode::SUCCESS; } diff --git a/Reconstruction/tauRecTools/tauRecTools/MvaTESVariableDecorator.h b/Reconstruction/tauRecTools/tauRecTools/MvaTESVariableDecorator.h index dbc8ae940ec3c5f861ad818420a906b14e51ca4b..533cf05ed099ae82372be9984fee311ca3e99060 100644 --- a/Reconstruction/tauRecTools/tauRecTools/MvaTESVariableDecorator.h +++ b/Reconstruction/tauRecTools/tauRecTools/MvaTESVariableDecorator.h @@ -28,7 +28,8 @@ class MvaTESVariableDecorator StatusCode executePi0CreateROI(xAOD::TauJet&, CaloCellContainer&) { return StatusCode::SUCCESS; } StatusCode executePi0ClusterCreator(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&, xAOD::CaloClusterContainer&) { return StatusCode::SUCCESS; } StatusCode executeVertexVariables(xAOD::TauJet&, xAOD::VertexContainer&) { return StatusCode::SUCCESS; } - StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + StatusCode executePi0nPFO(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } StatusCode executePanTau(xAOD::TauJet&, xAOD::ParticleContainer&) { return StatusCode::SUCCESS; } StatusCode eventFinalize(); diff --git a/Reconstruction/tauRecTools/tauRecTools/TauCalibrateLC.h b/Reconstruction/tauRecTools/tauRecTools/TauCalibrateLC.h index 74726da21c0d9a5f4004ec8665b40ee981885ba3..c5957e708eec9e839e125bf4c1ac94727b9ff07e 100644 --- a/Reconstruction/tauRecTools/tauRecTools/TauCalibrateLC.h +++ b/Reconstruction/tauRecTools/tauRecTools/TauCalibrateLC.h @@ -35,7 +35,8 @@ public: virtual StatusCode executePi0CreateROI(xAOD::TauJet&, CaloCellContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePi0ClusterCreator(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&, xAOD::CaloClusterContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executeVertexVariables(xAOD::TauJet&, xAOD::VertexContainer&) { return StatusCode::SUCCESS; } - virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0nPFO(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePanTau(xAOD::TauJet&, xAOD::ParticleContainer&) { return StatusCode::SUCCESS; } virtual StatusCode eventInitialize() { return StatusCode::SUCCESS; } virtual StatusCode eventFinalize() { return StatusCode::SUCCESS; } diff --git a/Reconstruction/tauRecTools/tauRecTools/TauCommonCalcVars.h b/Reconstruction/tauRecTools/tauRecTools/TauCommonCalcVars.h index 4a940cb5c26c5712d17587375b89dd1d264c9291..c29fa6fe0ac54528870eed1dc1e1ab28a9552873 100644 --- a/Reconstruction/tauRecTools/tauRecTools/TauCommonCalcVars.h +++ b/Reconstruction/tauRecTools/tauRecTools/TauCommonCalcVars.h @@ -32,7 +32,8 @@ public: virtual StatusCode executePi0CreateROI(xAOD::TauJet&, CaloCellContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePi0ClusterCreator(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&, xAOD::CaloClusterContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executeVertexVariables(xAOD::TauJet&, xAOD::VertexContainer&) { return StatusCode::SUCCESS; } - virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0nPFO(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePanTau(xAOD::TauJet&, xAOD::ParticleContainer&) { return StatusCode::SUCCESS; } virtual StatusCode finalize(); diff --git a/Reconstruction/tauRecTools/tauRecTools/TauEleOLRDecorator.h b/Reconstruction/tauRecTools/tauRecTools/TauEleOLRDecorator.h index 5122087460d978de67548451237d4dae0bdf3ae1..1dbcd5fc2bf9fce11a8f773a317d336fd37d82d7 100644 --- a/Reconstruction/tauRecTools/tauRecTools/TauEleOLRDecorator.h +++ b/Reconstruction/tauRecTools/tauRecTools/TauEleOLRDecorator.h @@ -37,9 +37,10 @@ class TauEleOLRDecorator: virtual public TauRecToolBase virtual StatusCode executeShotFinder(xAOD::TauJet&, xAOD::CaloClusterContainer&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePi0CreateROI(xAOD::TauJet&, CaloCellContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePi0ClusterCreator(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&, xAOD::CaloClusterContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0nPFO(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePanTau(xAOD::TauJet&, xAOD::ParticleContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executeVertexVariables(xAOD::TauJet&, xAOD::VertexContainer&) { return StatusCode::SUCCESS; } - virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } virtual StatusCode finalize(); diff --git a/Reconstruction/tauRecTools/tauRecTools/TauGenericPi0Cone.h b/Reconstruction/tauRecTools/tauRecTools/TauGenericPi0Cone.h index ff99fbc5ad032c0b799d92e2223f5e7d0289f5f8..1fa0fdb96afa329f69ad463caaeb41a859e3fa03 100644 --- a/Reconstruction/tauRecTools/tauRecTools/TauGenericPi0Cone.h +++ b/Reconstruction/tauRecTools/tauRecTools/TauGenericPi0Cone.h @@ -35,7 +35,8 @@ public: virtual StatusCode executePi0CreateROI(xAOD::TauJet&, CaloCellContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePi0ClusterCreator(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&, xAOD::CaloClusterContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executeVertexVariables(xAOD::TauJet&, xAOD::VertexContainer&) { return StatusCode::SUCCESS; } - virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0nPFO(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePanTau(xAOD::TauJet&, xAOD::ParticleContainer&) { return StatusCode::SUCCESS; } virtual StatusCode finalize(); diff --git a/Reconstruction/tauRecTools/tauRecTools/TauIDPileupCorrection.h b/Reconstruction/tauRecTools/tauRecTools/TauIDPileupCorrection.h index 0b9265a8b552354319bf2c1343462e6b38bb7810..24d625818b1473cc8e6c3c6269eb71508ed8b266 100644 --- a/Reconstruction/tauRecTools/tauRecTools/TauIDPileupCorrection.h +++ b/Reconstruction/tauRecTools/tauRecTools/TauIDPileupCorrection.h @@ -51,8 +51,9 @@ public: virtual StatusCode executeShotFinder(xAOD::TauJet&, xAOD::CaloClusterContainer&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePi0CreateROI(xAOD::TauJet&, CaloCellContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePi0ClusterCreator(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&, xAOD::CaloClusterContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0nPFO(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executeVertexVariables(xAOD::TauJet&, xAOD::VertexContainer&) { return StatusCode::SUCCESS; } - virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePanTau(xAOD::TauJet&, xAOD::ParticleContainer&) { return StatusCode::SUCCESS; } virtual void print() const { } diff --git a/Reconstruction/tauRecTools/tauRecTools/TauIDVarCalculator.h b/Reconstruction/tauRecTools/tauRecTools/TauIDVarCalculator.h index 5a568345544849dff0526d140e198fad37c37c8c..418d86bbd5853fcd325765996b8f88c87d17e175 100644 --- a/Reconstruction/tauRecTools/tauRecTools/TauIDVarCalculator.h +++ b/Reconstruction/tauRecTools/tauRecTools/TauIDVarCalculator.h @@ -35,7 +35,8 @@ class TauIDVarCalculator: public TauRecToolBase virtual StatusCode executePi0CreateROI(xAOD::TauJet&, CaloCellContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePi0ClusterCreator(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&, xAOD::CaloClusterContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executeVertexVariables(xAOD::TauJet&, xAOD::VertexContainer&) { return StatusCode::SUCCESS; } - virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0nPFO(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePanTau(xAOD::TauJet&, xAOD::ParticleContainer&) { return StatusCode::SUCCESS; } virtual StatusCode finalize(); diff --git a/Reconstruction/tauRecTools/tauRecTools/TauJetBDTEvaluator.h b/Reconstruction/tauRecTools/tauRecTools/TauJetBDTEvaluator.h index e635d082594580babaceac90d93e6b345b4dd476..b276421e5a2d11b54322d9eb28e69f2668f12bde 100644 --- a/Reconstruction/tauRecTools/tauRecTools/TauJetBDTEvaluator.h +++ b/Reconstruction/tauRecTools/tauRecTools/TauJetBDTEvaluator.h @@ -33,7 +33,8 @@ class TauJetBDTEvaluator StatusCode executePi0CreateROI(xAOD::TauJet&, CaloCellContainer&) { return StatusCode::SUCCESS; } StatusCode executePi0ClusterCreator(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&, xAOD::CaloClusterContainer&) { return StatusCode::SUCCESS; } StatusCode executeVertexVariables(xAOD::TauJet&, xAOD::VertexContainer&) { return StatusCode::SUCCESS; } - StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + StatusCode executePi0nPFO(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } StatusCode executePanTau(xAOD::TauJet&, xAOD::ParticleContainer&) { return StatusCode::SUCCESS; } StatusCode finalize();// { delete myBdt; delete m_outputVar; return StatusCode::SUCCESS;} diff --git a/Reconstruction/tauRecTools/tauRecTools/TauPi0ClusterScaler.h b/Reconstruction/tauRecTools/tauRecTools/TauPi0ClusterScaler.h index c1a60d3105a29b9e1334a03b8893f1f4b511b288..e16cdb18bbf286e2f882cb55d34e5ceb81425967 100644 --- a/Reconstruction/tauRecTools/tauRecTools/TauPi0ClusterScaler.h +++ b/Reconstruction/tauRecTools/tauRecTools/TauPi0ClusterScaler.h @@ -36,7 +36,8 @@ public: virtual StatusCode executePi0CreateROI(xAOD::TauJet&, CaloCellContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePi0ClusterCreator(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&, xAOD::CaloClusterContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executeVertexVariables(xAOD::TauJet&, xAOD::VertexContainer&) { return StatusCode::SUCCESS; } - virtual StatusCode executePi0ClusterScaler(xAOD::TauJet& pTau, xAOD::PFOContainer& pChargedPFOContainer); + virtual StatusCode executePi0ClusterScaler(xAOD::TauJet& pTau, xAOD::PFOContainer& pNeutralPFOContainer, xAOD::PFOContainer& pChargedPFOContainer); + virtual StatusCode executePi0nPFO(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePanTau(xAOD::TauJet&, xAOD::ParticleContainer&) { return StatusCode::SUCCESS; } virtual StatusCode eventFinalize(); @@ -48,7 +49,7 @@ private: //ToolHandle<Trk::IParticleCaloExtensionTool> m_caloExtensionTool; /** @brief reset neutral PFO kinematics (for AOD running) */ - void resetNeutralPFOs(xAOD::TauJet& pTau); + void resetNeutralPFOs(xAOD::TauJet& pTau, xAOD::PFOContainer& pNeutralPFOContainer); /** @brief create charged PFOs */ void createChargedPFOs(xAOD::TauJet& pTau, xAOD::PFOContainer& pChargedPFOContainer); @@ -57,13 +58,13 @@ private: //void extrapolateChargedPFOs(xAOD::TauJet& pTau); /** @brief associate hadronic PFOs to charged PFOs */ - void associateHadronicToChargedPFOs(xAOD::TauJet& pTau); + void associateHadronicToChargedPFOs(xAOD::TauJet& pTau, xAOD::PFOContainer& pChargedPFOContainer); /** @brief associate charged PFOs to neutral PFOs */ - void associateChargedToNeutralPFOs(xAOD::TauJet& pTau); + void associateChargedToNeutralPFOs(xAOD::TauJet& pTau, xAOD::PFOContainer& pNeutralPFOContainer); /** @brief associate charged PFOs to neutral PFOs */ - void subtractChargedEnergyFromNeutralPFOs(xAOD::TauJet& pTau); + void subtractChargedEnergyFromNeutralPFOs(xAOD::PFOContainer& pNeutralPFOContainer); /** @brief sets of EM/Had samplings for track extrapolation */ //std::set<CaloSampling::CaloSample> m_EMSamplings; diff --git a/Reconstruction/tauRecTools/tauRecTools/TauPi0ScoreCalculator.h b/Reconstruction/tauRecTools/tauRecTools/TauPi0ScoreCalculator.h index 56c4566ac51cc61b3e2e18d0beda539d378d62f9..9dbd75c58169faea63b8a749280f19d751ac9c2a 100644 --- a/Reconstruction/tauRecTools/tauRecTools/TauPi0ScoreCalculator.h +++ b/Reconstruction/tauRecTools/tauRecTools/TauPi0ScoreCalculator.h @@ -29,12 +29,13 @@ public: virtual StatusCode initialize(); virtual StatusCode finalize(); - virtual StatusCode execute(xAOD::TauJet& pTau); + virtual StatusCode execute(xAOD::TauJet&){ return StatusCode::SUCCESS; } virtual StatusCode executeShotFinder(xAOD::TauJet&, xAOD::CaloClusterContainer&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePi0CreateROI(xAOD::TauJet&, CaloCellContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePi0ClusterCreator(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&, xAOD::CaloClusterContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executeVertexVariables(xAOD::TauJet&, xAOD::VertexContainer&) { return StatusCode::SUCCESS; } - virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0nPFO(xAOD::TauJet& pTau, xAOD::PFOContainer& pNeutralPFOContainer); virtual StatusCode executePanTau(xAOD::TauJet&, xAOD::ParticleContainer&) { return StatusCode::SUCCESS; } virtual StatusCode eventInitialize() { return StatusCode::SUCCESS; } diff --git a/Reconstruction/tauRecTools/tauRecTools/TauPi0Selector.h b/Reconstruction/tauRecTools/tauRecTools/TauPi0Selector.h index 0cc4e5d944fd54ba2541ec9306fe4390bd22dd8c..0ea9b77d719031ffba8346751ff0d20a9645c632 100644 --- a/Reconstruction/tauRecTools/tauRecTools/TauPi0Selector.h +++ b/Reconstruction/tauRecTools/tauRecTools/TauPi0Selector.h @@ -23,12 +23,13 @@ public: virtual ~TauPi0Selector(); virtual StatusCode initialize(); virtual StatusCode finalize(); - virtual StatusCode execute(xAOD::TauJet& pTau); + virtual StatusCode execute(xAOD::TauJet&) { return StatusCode::SUCCESS; } virtual StatusCode executeShotFinder(xAOD::TauJet&, xAOD::CaloClusterContainer&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePi0CreateROI(xAOD::TauJet&, CaloCellContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePi0ClusterCreator(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&, xAOD::CaloClusterContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executeVertexVariables(xAOD::TauJet&, xAOD::VertexContainer&) { return StatusCode::SUCCESS; } - virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0nPFO(xAOD::TauJet& pTau, xAOD::PFOContainer& pNeutralPFOContainer); virtual StatusCode executePanTau(xAOD::TauJet&, xAOD::ParticleContainer&) { return StatusCode::SUCCESS; } virtual StatusCode eventInitialize() { return StatusCode::SUCCESS; } diff --git a/Reconstruction/tauRecTools/tauRecTools/TauSubstructureVariables.h b/Reconstruction/tauRecTools/tauRecTools/TauSubstructureVariables.h index 6659e94129ec119514e6d42dbb1c9cc32a33d975..429dd26dd08981314ec038d12c653d2e26e4ddca 100644 --- a/Reconstruction/tauRecTools/tauRecTools/TauSubstructureVariables.h +++ b/Reconstruction/tauRecTools/tauRecTools/TauSubstructureVariables.h @@ -31,7 +31,8 @@ class TauSubstructureVariables : public TauRecToolBase virtual StatusCode executePi0CreateROI(xAOD::TauJet&, CaloCellContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePi0ClusterCreator(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&, xAOD::CaloClusterContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executeVertexVariables(xAOD::TauJet&, xAOD::VertexContainer&) { return StatusCode::SUCCESS; } - virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0nPFO(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePanTau(xAOD::TauJet&, xAOD::ParticleContainer&) { return StatusCode::SUCCESS; } virtual StatusCode initialize(); diff --git a/Reconstruction/tauRecTools/tauRecTools/TauTrackClassifier.h b/Reconstruction/tauRecTools/tauRecTools/TauTrackClassifier.h index 83f689985ef64aa045c415f2c020a46a475d71c4..b57c70bf8ffec04d2e3685141a690813138383ee 100644 --- a/Reconstruction/tauRecTools/tauRecTools/TauTrackClassifier.h +++ b/Reconstruction/tauRecTools/tauRecTools/TauTrackClassifier.h @@ -49,7 +49,8 @@ public: virtual StatusCode executePi0CreateROI(xAOD::TauJet&, CaloCellContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePi0ClusterCreator(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&, xAOD::CaloClusterContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executeVertexVariables(xAOD::TauJet&, xAOD::VertexContainer&) { return StatusCode::SUCCESS; } - virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0nPFO(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePanTau(xAOD::TauJet&, xAOD::ParticleContainer&) { return StatusCode::SUCCESS; } private: @@ -80,7 +81,8 @@ class TrackMVABDT StatusCode executePi0CreateROI(xAOD::TauJet&, CaloCellContainer&) { return StatusCode::SUCCESS; } StatusCode executePi0ClusterCreator(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&, xAOD::CaloClusterContainer&) { return StatusCode::SUCCESS; } StatusCode executeVertexVariables(xAOD::TauJet&, xAOD::VertexContainer&) { return StatusCode::SUCCESS; } - StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + StatusCode executePi0nPFO(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } StatusCode executePanTau(xAOD::TauJet&, xAOD::ParticleContainer&) { return StatusCode::SUCCESS; } StatusCode finalize(); diff --git a/Reconstruction/tauRecTools/tauRecTools/TauTrackFilter.h b/Reconstruction/tauRecTools/tauRecTools/TauTrackFilter.h index 397b4750ad8afc7bef10a64f2d9f088e35377d84..46f98b535cced61f83216e233125be16f3683b11 100644 --- a/Reconstruction/tauRecTools/tauRecTools/TauTrackFilter.h +++ b/Reconstruction/tauRecTools/tauRecTools/TauTrackFilter.h @@ -35,7 +35,8 @@ public: virtual StatusCode executePi0CreateROI(xAOD::TauJet&, CaloCellContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePi0ClusterCreator(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&, xAOD::CaloClusterContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executeVertexVariables(xAOD::TauJet&, xAOD::VertexContainer&) { return StatusCode::SUCCESS; } - virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0nPFO(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePanTau(xAOD::TauJet&, xAOD::ParticleContainer&) { return StatusCode::SUCCESS; } virtual StatusCode finalize(); virtual StatusCode eventInitialize() { return StatusCode::SUCCESS; } diff --git a/Reconstruction/tauRecTools/tauRecTools/TauWPDecorator.h b/Reconstruction/tauRecTools/tauRecTools/TauWPDecorator.h index 2517ced2145d109911ae66596060c80b95092c11..1bf821b1b2af7a3fff2c882572cbbe0ead1edde3 100644 --- a/Reconstruction/tauRecTools/tauRecTools/TauWPDecorator.h +++ b/Reconstruction/tauRecTools/tauRecTools/TauWPDecorator.h @@ -38,7 +38,8 @@ public: virtual StatusCode executePi0CreateROI(xAOD::TauJet&, CaloCellContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePi0ClusterCreator(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&, xAOD::CaloClusterContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executeVertexVariables(xAOD::TauJet&, xAOD::VertexContainer&) { return StatusCode::SUCCESS; } - virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0ClusterScaler(xAOD::TauJet&, xAOD::PFOContainer&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } + virtual StatusCode executePi0nPFO(xAOD::TauJet&, xAOD::PFOContainer&) { return StatusCode::SUCCESS; } virtual StatusCode executePanTau(xAOD::TauJet&, xAOD::ParticleContainer&) { return StatusCode::SUCCESS; } virtual StatusCode retrieveHistos(int nProng); diff --git a/Simulation/Digitization/test/test_MC16a_Digi_tf_configuration.py b/Simulation/Digitization/test/test_MC16a_Digi_tf_configuration.py index f7b55e4028b29919550eeab106d001f3463753d4..834c41c170b28bf5ec902ce47b6d3a40787e4223 100755 --- a/Simulation/Digitization/test/test_MC16a_Digi_tf_configuration.py +++ b/Simulation/Digitization/test/test_MC16a_Digi_tf_configuration.py @@ -296,7 +296,7 @@ class TestDigitizationMC16a(unittest.TestCase): def test___CscDigitizationTool_properties(self): tested_configurable_name = 'ToolSvc.CscDigitizationTool' - expected_property_list = ['DetStore', 'DriftVelocity', 'ElectronEnergy', 'EvtStore', 'ExtraInputs', 'ExtraOutputs', 'FirstXing', 'InputObjectName', 'LastXing', 'NewDigitEDM', 'OutputObjectName', 'RndmEngine', 'RndmSvc', 'WindowLowerOffset', 'WindowUpperOffset', 'amplification', 'cscCalibTool', 'isPileUp', 'pedestal'] + expected_property_list = ['DetStore', 'DriftVelocity', 'ElectronEnergy', 'EvtStore', 'ExtraInputs', 'ExtraOutputs', 'FirstXing', 'InputObjectName', 'LastXing', 'NewDigitEDM', 'OutputObjectName', 'RndmSvc', 'WindowLowerOffset', 'WindowUpperOffset', 'amplification', 'cscCalibTool', 'isPileUp', 'pedestal'] expected_nonstring_properties = {'LastXing': '175', 'FirstXing': '-375'} expected_string_properties = {'InputObjectName': 'CSC_Hits', 'OutputObjectName': 'CSC_DIGITS'} self._detailed_ConfigurablePropertiesCheck( @@ -308,7 +308,7 @@ class TestDigitizationMC16a(unittest.TestCase): def test___MdtDigitizationTool_properties(self): tested_configurable_name = 'ToolSvc.MdtDigitizationTool' - expected_property_list = ['DetStore', 'DigitizationTool', 'DiscardEarlyHits', 'DoQballCharge', 'EvtStore', 'ExtraInputs', 'ExtraOutputs', 'FirstXing', 'LastXing', 'MDTCondSummarySvc', 'MaskedStations', 'MdtCalibrationDbSvc', 'RndmEngine', 'RndmSvc', 'TwinRndmEngine', 'TwinRndmSvc', 'UseDeadChamberSvc', 'UseTof'] + expected_property_list = ['DetStore', 'DigitizationTool', 'DiscardEarlyHits', 'DoQballCharge', 'EvtStore', 'ExtraInputs', 'ExtraOutputs', 'FirstXing', 'LastXing', 'MDTCondSummarySvc', 'MaskedStations', 'MdtCalibrationDbSvc', 'RndmSvc', 'UseDeadChamberSvc', 'UseTof'] expected_nonstring_properties = {'LastXing': '150', 'FirstXing': '-800'} expected_string_properties = {} # Not checking any specific property values self._detailed_ConfigurablePropertiesCheck( @@ -320,7 +320,7 @@ class TestDigitizationMC16a(unittest.TestCase): def test___RpcDigitizationTool_properties(self): tested_configurable_name = 'ToolSvc.RpcDigitizationTool' - expected_property_list = ['ClusterSize1_2uncorr', 'ClusterSize_fromCOOL', 'CutProjectedTracks', 'DeadTime', 'DetStore', 'DumpFromDbFirst', 'EfficiencyPatchForBMShighEta', 'Efficiency_fromCOOL', 'EvtStore', 'ExtraInputs', 'ExtraOutputs', 'FirstXing', 'FracClusterSize1_A', 'FracClusterSize1_C', 'FracClusterSize2_A', 'FracClusterSize2_C', 'FracClusterSizeTail_A', 'FracClusterSizeTail_C', 'IgnoreRunDependentConfig', 'LastXing', 'MeanClusterSizeTail_A', 'MeanClusterSizeTail_C', 'OnlyEtaEff_A', 'OnlyEtaEff_C', 'OnlyPhiEff_A', 'OnlyPhiEff_C', 'PanelId_OFF_fromlist', 'PanelId_OK_fromlist', 'PatchForRpcTime', 'PatchForRpcTimeShift', 'PhiAndEtaEff_A', 'PhiAndEtaEff_C', 'PrintCalibrationVector', 'RPCCondSummarySvc', 'RPCInfoFromDb', 'RndmEngine', 'RndmSvc', 'testbeam_clustersize', 'turnON_clustersize', 'turnON_efficiency'] + expected_property_list = ['ClusterSize1_2uncorr', 'ClusterSize_fromCOOL', 'CutProjectedTracks', 'DeadTime', 'DetStore', 'DumpFromDbFirst', 'EfficiencyPatchForBMShighEta', 'Efficiency_fromCOOL', 'EvtStore', 'ExtraInputs', 'ExtraOutputs', 'FirstXing', 'FracClusterSize1_A', 'FracClusterSize1_C', 'FracClusterSize2_A', 'FracClusterSize2_C', 'FracClusterSizeTail_A', 'FracClusterSizeTail_C', 'IgnoreRunDependentConfig', 'LastXing', 'MeanClusterSizeTail_A', 'MeanClusterSizeTail_C', 'OnlyEtaEff_A', 'OnlyEtaEff_C', 'OnlyPhiEff_A', 'OnlyPhiEff_C', 'PanelId_OFF_fromlist', 'PanelId_OK_fromlist', 'PatchForRpcTime', 'PatchForRpcTimeShift', 'PhiAndEtaEff_A', 'PhiAndEtaEff_C', 'PrintCalibrationVector', 'RPCCondSummarySvc', 'RPCInfoFromDb', 'RndmSvc', 'testbeam_clustersize', 'turnON_clustersize', 'turnON_efficiency'] expected_nonstring_properties = {'LastXing': '125', 'FirstXing': '-150'} expected_string_properties = {} # Not checking any specific property values self._detailed_ConfigurablePropertiesCheck( @@ -332,7 +332,7 @@ class TestDigitizationMC16a(unittest.TestCase): def test___TgcDigitizationTool_properties(self): tested_configurable_name = 'ToolSvc.TgcDigitizationTool' - expected_property_list = ['DetStore', 'EvtStore', 'ExtraInputs', 'ExtraOutputs', 'FirstXing', 'LastXing', 'RndmEngine', 'RndmSvc'] + expected_property_list = ['DetStore', 'EvtStore', 'ExtraInputs', 'ExtraOutputs', 'FirstXing', 'LastXing', 'RndmSvc'] expected_nonstring_properties = {'LastXing': '75', 'FirstXing': '-50'} expected_string_properties = {} # Not checking any specific property values self._detailed_ConfigurablePropertiesCheck( diff --git a/Simulation/G4Atlas/G4AtlasApps/test/test_G4Atlas.sh b/Simulation/G4Atlas/G4AtlasApps/test/test_G4Atlas.sh index d269fdfe37401c30fa22f6af3a38de4c8a44236f..b3eb1adf797ca4ef928bedc3c3bcc7d7bd68e257 100755 --- a/Simulation/G4Atlas/G4AtlasApps/test/test_G4Atlas.sh +++ b/Simulation/G4Atlas/G4AtlasApps/test/test_G4Atlas.sh @@ -3,7 +3,6 @@ # art-description: G4Atlas ParticleGun example # art-type: build # art-include: 21.0/Athena -# art-include: 21.0/AthSimulation # art-include: 21.3/Athena # art-include: 21.9/Athena # art-include: master/Athena diff --git a/Simulation/G4Atlas/G4AtlasApps/test/test_G4Cosmic.sh b/Simulation/G4Atlas/G4AtlasApps/test/test_G4Cosmic.sh index d99e6f2f92c1a90eda31b40e873f28c8090f7b2c..c900fce25928cce1a7b60f57687f213438742fc7 100755 --- a/Simulation/G4Atlas/G4AtlasApps/test/test_G4Cosmic.sh +++ b/Simulation/G4Atlas/G4AtlasApps/test/test_G4Cosmic.sh @@ -3,7 +3,6 @@ # art-description: G4Cosmic example # art-type: build # art-include: 21.0/Athena -# art-include: 21.0/AthSimulation # art-include: 21.3/Athena # art-include: 21.9/Athena # art-include: master/Athena diff --git a/Simulation/ISF/ISF_Config/python/ISF_ConfigConfigDb.py b/Simulation/ISF/ISF_Config/python/ISF_ConfigConfigDb.py index 9e8f8cad9ac5678feaf21dcf310efd2bbe706a34..8808d0d3b2f7b817a8504c67a2c1204cbe177c4b 100644 --- a/Simulation/ISF/ISF_Config/python/ISF_ConfigConfigDb.py +++ b/Simulation/ISF/ISF_Config/python/ISF_ConfigConfigDb.py @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration """ Configuration database for ISF @@ -45,9 +45,11 @@ addAlgorithm("ISF_Config.ISF_MainConfig.getKernel_G4HS_FastPileup", "ISF_Ker addAlgorithm("ISF_Config.ISF_MainConfig.getKernel_ATLFASTIIF_IDOnly", "ISF_Kernel_ATLFASTIIF_IDOnly") addAlgorithm("ISF_Config.ISF_MainConfig.getKernel_ATLFASTIIF_IDCalo", "ISF_Kernel_ATLFASTIIF_IDCalo") addAlgorithm("ISF_Config.ISF_MainConfig.getKernel_G4FastCalo", "ISF_Kernel_G4FastCalo") +addAlgorithm("ISF_Config.ISF_MainConfig.getKernel_G4FastCaloDNN", "ISF_Kernel_G4FastCaloDNN") addAlgorithm("ISF_Config.ISF_MainConfig.getKernel_Fatras_newExtrapolation","ISF_Kernel_Fatras_newExtrapolation") addAlgorithm("ISF_Config.ISF_MainConfig.getKernel_Fatras_newExtrapolation_IDOnly","ISF_Kernel_Fatras_newExtrapolation_IDOnly") addAlgorithm("ISF_Config.ISF_MainConfig.getKernel_FastOnly", "ISF_Kernel_FastOnly") +addAlgorithm("ISF_Config.ISF_MainConfig.getKernel_DNNOnly", "ISF_Kernel_DNNOnly") addAlgorithm("ISF_Config.ISF_MainConfig.getKernel_MultiSimTest", "ISF_Kernel_MultiSimTest") addAlgorithm("ISF_Config.ISF_MainConfig.getKernel_G4GammaCones" , "ISF_Kernel_G4GammaCones" ) addAlgorithm("ISF_Config.ISF_MainConfig.getKernel_G4GammaCones_FastCalo" , "ISF_Kernel_G4GammaCones_FastCalo" ) diff --git a/Simulation/ISF/ISF_Config/python/ISF_MainConfig.py b/Simulation/ISF/ISF_Config/python/ISF_MainConfig.py index 7e70cf71d08d4f652e79134c425759366f455362..b3868c8ec6ef6b8cc663ce1fe9cde934465710ab 100644 --- a/Simulation/ISF/ISF_Config/python/ISF_MainConfig.py +++ b/Simulation/ISF/ISF_Config/python/ISF_MainConfig.py @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration """ Tools configurations for ISF @@ -364,6 +364,22 @@ def getKernel_G4FastCalo(name="ISF_Kernel_G4FastCalo", **kwargs): simFlags.SimulationFlavour = "G4FastCalo" return getKernel_GenericSimulator(name, **kwargs) +############## Simulator: G4FastCaloDNN ############### +# like G4FastCalo, replacing FastCaloSimV2 by DNNCaloSim +def getKernel_G4FastCaloDNN(name="ISF_Kernel_G4FastCaloDNN", **kwargs): + kwargs.setdefault("ParticleBroker" , 'ISF_AFIIParticleBrokerSvc') + + kwargs.setdefault("BeamPipeSimulationSelectors", [ 'ISF_DefaultAFIIGeant4Selector' ] ) + kwargs.setdefault("IDSimulationSelectors" , [ 'ISF_DefaultAFIIGeant4Selector' ] ) + kwargs.setdefault("CaloSimulationSelectors" , [ 'ISF_MuonAFIIGeant4Selector', + 'ISF_EtaGreater5ParticleKillerSimSelector', + 'ISF_DefaultDNNCaloSimSelector' ] ) + kwargs.setdefault("MSSimulationSelectors" , [ 'ISF_DefaultAFIIGeant4Selector' ] ) + kwargs.setdefault("CavernSimulationSelectors" , [ 'ISF_DefaultParticleKillerSelector' ] ) + from G4AtlasApps.SimFlags import simFlags + simFlags.SimulationFlavour = "G4FastCalo" + return getKernel_GenericSimulator(name, **kwargs) + ############## Simulator: ATLFASTII ############### def getKernel_ATLFASTII(name="ISF_Kernel_ATLFASTII", **kwargs): kwargs.setdefault("ParticleBroker" , 'ISF_AFIIParticleBrokerSvc' ) @@ -529,6 +545,13 @@ def getKernel_FastOnly(name="ISF_Kernel_FastOnly", **kwargs): kwargs.setdefault("CavernSimulationSelectors" , [ 'ISF_DefaultParticleKillerSelector' ] ) return getKernel_GenericSimulatorNoG4(name, **kwargs) +############## Simulator: DNNOnly ############### +# run DNNCaloSim standalone, for faster tests +def getKernel_DNNOnly(name="ISF_Kernel_DNNOnly", **kwargs): + kwargs.setdefault("CaloSimulationSelectors" , [ 'ISF_DefaultDNNCaloSimSelector' ] ) + return getKernel_GenericSimulatorNoG4(name, **kwargs) + + ############## Simulator: G4GammaCones ############### def getKernel_G4GammaCones(name="ISF_Kernel_G4GammaCones", **kwargs): kwargs.setdefault("BeamPipeSimulationSelectors" , [ 'ISF_PhotonConeGeant4Selector' , diff --git a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimEvent/src/TFCSCenterPositionCalculation.cxx b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimEvent/src/TFCSCenterPositionCalculation.cxx index 4dd796537b99f298ffe81567053d19ba6009ed0f..f759bf447abff81fe4e37d9871cefc3e4099d2e6 100644 --- a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimEvent/src/TFCSCenterPositionCalculation.cxx +++ b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimEvent/src/TFCSCenterPositionCalculation.cxx @@ -24,7 +24,7 @@ FCSReturnCode TFCSCenterPositionCalculation::simulate_hit(Hit& hit,TFCSSimulatio hit.setCenter_eta( (1.-m_extrapWeight)*extrapol->eta(cs, SUBPOS_ENT) + m_extrapWeight*extrapol->eta(cs, SUBPOS_EXT) ); hit.setCenter_phi( (1.-m_extrapWeight)*extrapol->phi(cs, SUBPOS_ENT) + m_extrapWeight*extrapol->phi(cs, SUBPOS_EXT) ); - ATH_MSG_DEBUG("TFCSCenterPositionCalculation: center_r: " << hit.center_r() << " center_z: " << hit.center_z() << " center_phi: " << hit.center_phi() << " center_eta: " << hit.center_eta() ); + ATH_MSG_DEBUG("TFCSCenterPositionCalculation: center_r: " << hit.center_r() << " center_z: " << hit.center_z() << " center_phi: " << hit.center_phi() << " center_eta: " << hit.center_eta() << " weight: " << m_extrapWeight << " cs: " << cs); return FCSSuccess; } diff --git a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimEvent/src/TFCSHistoLateralShapeParametrization.cxx b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimEvent/src/TFCSHistoLateralShapeParametrization.cxx index 5741c0f168e3a6e4aa7def787b97c9fa497ddaef..fc78ae5ea4af8310be9d80ffd93d97798bb36de8 100644 --- a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimEvent/src/TFCSHistoLateralShapeParametrization.cxx +++ b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimEvent/src/TFCSHistoLateralShapeParametrization.cxx @@ -55,10 +55,12 @@ FCSReturnCode TFCSHistoLateralShapeParametrization::simulate_hit(Hit &hit, TFCSS const double charge = HepPDT::ParticleID(pdgId).charge(); const int cs=calosample(); - const double center_eta=0.5*( extrapol->eta(cs, CaloSubPos::SUBPOS_ENT) + extrapol->eta(cs, CaloSubPos::SUBPOS_EXT) ); - const double center_phi=0.5*( extrapol->phi(cs, CaloSubPos::SUBPOS_ENT) + extrapol->phi(cs, CaloSubPos::SUBPOS_EXT) ); - const double center_r=0.5*( extrapol->r(cs, CaloSubPos::SUBPOS_ENT) + extrapol->r(cs, CaloSubPos::SUBPOS_EXT) ); - const double center_z=0.5*( extrapol->z(cs, CaloSubPos::SUBPOS_ENT) + extrapol->z(cs, CaloSubPos::SUBPOS_EXT) ); + const double center_eta = hit.center_eta(); + const double center_phi = hit.center_phi(); + const double center_r = hit.center_r(); + const double center_z = hit.center_z(); + + if (TMath::IsNaN(center_r) or TMath::IsNaN(center_z) or TMath::IsNaN(center_eta) or TMath::IsNaN(center_phi)) { //Check if extrapolation fails return FCSFatal; diff --git a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimEvent/src/TFCSHistoLateralShapeParametrizationFCal.cxx b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimEvent/src/TFCSHistoLateralShapeParametrizationFCal.cxx index 19e521ca818ce91dbf0a5db56c6e9c680a0f98b0..a6e1243ae216f1e2739146dc18c750d037f0574f 100644 --- a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimEvent/src/TFCSHistoLateralShapeParametrizationFCal.cxx +++ b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimEvent/src/TFCSHistoLateralShapeParametrizationFCal.cxx @@ -28,7 +28,7 @@ TFCSHistoLateralShapeParametrizationFCal::~TFCSHistoLateralShapeParametrizationF { } -FCSReturnCode TFCSHistoLateralShapeParametrizationFCal::simulate_hit(Hit &hit, TFCSSimulationState &simulstate, const TFCSTruthState* truth, const TFCSExtrapolationState* extrapol) +FCSReturnCode TFCSHistoLateralShapeParametrizationFCal::simulate_hit(Hit &hit, TFCSSimulationState &simulstate, const TFCSTruthState* truth, const TFCSExtrapolationState* /*extrapol*/) { if (!simulstate.randomEngine()) { return FCSFatal; @@ -38,9 +38,12 @@ FCSReturnCode TFCSHistoLateralShapeParametrizationFCal::simulate_hit(Hit &hit, T const double charge = HepPDT::ParticleID(pdgId).charge(); const int cs=calosample(); - const double center_phi=0.5*( extrapol->phi(cs, CaloSubPos::SUBPOS_ENT) + extrapol->phi(cs, CaloSubPos::SUBPOS_EXT) ); - const double center_r=0.5*( extrapol->r(cs, CaloSubPos::SUBPOS_ENT) + extrapol->r(cs, CaloSubPos::SUBPOS_EXT) ); - const double center_z=0.5*( extrapol->z(cs, CaloSubPos::SUBPOS_ENT) + extrapol->z(cs, CaloSubPos::SUBPOS_EXT) ); + //const double center_phi=0.5*( extrapol->phi(cs, CaloSubPos::SUBPOS_ENT) + extrapol->phi(cs, CaloSubPos::SUBPOS_EXT) ); + //const double center_r=0.5*( extrapol->r(cs, CaloSubPos::SUBPOS_ENT) + extrapol->r(cs, CaloSubPos::SUBPOS_EXT) ); + //const double center_z=0.5*( extrapol->z(cs, CaloSubPos::SUBPOS_ENT) + extrapol->z(cs, CaloSubPos::SUBPOS_EXT) ); + const double center_phi = hit.center_phi(); + const double center_r = hit.center_r(); + const double center_z = hit.center_z(); float alpha, r, rnd1, rnd2; rnd1 = CLHEP::RandFlat::shoot(simulstate.randomEngine()); diff --git a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimServices/CMakeLists.txt b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimServices/CMakeLists.txt index 8e82ab2ff1aff7a9746a211314960815e6c67da0..96b650d200bece70dc7ce10ad249344c5ea76d18 100644 --- a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimServices/CMakeLists.txt +++ b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimServices/CMakeLists.txt @@ -34,13 +34,14 @@ atlas_depends_on_subdirs( PUBLIC # External dependencies: find_package( CLHEP ) find_package( HepMC ) +find_package(lwtnn) # Component(s) in the package: atlas_add_component( ISF_FastCaloSimServices src/*.cxx src/components/*.cxx - INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} ${HEPMC_INCLUDE_DIRS} - LINK_LIBRARIES ${CLHEP_LIBRARIES} ${HEPMC_LIBRARIES} AthenaBaseComps AthenaKernel GaudiKernel IdDictParser ISF_Interfaces TrkEventPrimitives TrkExInterfaces CaloEvent StoreGateLib SGtests NavFourMom GeneratorObjects FastCaloSimLib ISF_Event ISF_FastCaloSimEvent ISF_FastCaloSimInterfaces ISF_FastCaloSimParametrizationLib PathResolver) + INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} ${HEPMC_INCLUDE_DIRS} ${LWTNN_INCLUDE_DIRS} + LINK_LIBRARIES ${CLHEP_LIBRARIES} ${HEPMC_LIBRARIES} ${LWTNN_LIBRARIES} AthenaBaseComps AthenaKernel GaudiKernel IdDictParser ISF_Interfaces TrkEventPrimitives TrkExInterfaces CaloEvent StoreGateLib SGtests NavFourMom GeneratorObjects FastCaloSimLib ISF_Event ISF_FastCaloSimEvent ISF_FastCaloSimInterfaces ISF_FastCaloSimParametrizationLib PathResolver) # Install files from the package: atlas_install_headers( ISF_FastCaloSimServices ) diff --git a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimServices/python/ISF_FastCaloSimServicesConfig.py b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimServices/python/ISF_FastCaloSimServicesConfig.py index 62e8ded1c78c5c89f75afc1488d2f5b525f78a43..5c476d2d9a0f9fb1da5610053fbdefc4d33c3142 100644 --- a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimServices/python/ISF_FastCaloSimServicesConfig.py +++ b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimServices/python/ISF_FastCaloSimServicesConfig.py @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration """ Tools configurations for ISF_FastCaloSimServices @@ -87,3 +87,24 @@ def getFastCaloSimSvcV2(name="ISF_FastCaloSimSvcV2", **kwargs): kwargs.setdefault("RandomSvc" , simFlags.RandomSvc.get_Value() ) return CfgMgr.ISF__FastCaloSimSvcV2(name, **kwargs ) + +#### DNNCaloSim +def getDNNCaloSimSvc(name="ISF_DNNCaloSimSvc", **kwargs): + from ISF_FastCaloSimServices.ISF_FastCaloSimJobProperties import ISF_FastCaloSimFlags + + kwargs.setdefault("CaloCellsOutputName" , ISF_FastCaloSimFlags.CaloCellsName() ) + kwargs.setdefault("CaloCellMakerTools_setup" , [ 'ISF_EmptyCellBuilderTool' ] ) + kwargs.setdefault("CaloCellMakerTools_release" , [ 'ISF_CaloCellContainerFinalizerTool', + 'ISF_FastHitConvertTool' ]) #DR needed ? + kwargs.setdefault("ParamsInputFilename" , ISF_FastCaloSimFlags.ParamsInputFilename()) + kwargs.setdefault("FastCaloSimCaloExtrapolation" , 'FastCaloSimCaloExtrapolation') + + # register the FastCaloSim random number streams + from G4AtlasApps.SimFlags import simFlags + if not simFlags.RandomSeedList.checkForExistingSeed(ISF_FastCaloSimFlags.RandomStreamName()): + simFlags.RandomSeedList.addSeed( ISF_FastCaloSimFlags.RandomStreamName(), 98346412, 12461240 ) + + kwargs.setdefault("RandomStream" , ISF_FastCaloSimFlags.RandomStreamName()) + kwargs.setdefault("RandomSvc" , simFlags.RandomSvc.get_Value() ) + + return CfgMgr.ISF__DNNCaloSimSvc(name, **kwargs ) diff --git a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimServices/python/ISF_FastCaloSimServicesConfigDb.py b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimServices/python/ISF_FastCaloSimServicesConfigDb.py index 70399972113df390d81008c4d14ec2ab168977c7..ef876dd16d2e6f4cc8808d7fa1b58b639d5df4c6 100644 --- a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimServices/python/ISF_FastCaloSimServicesConfigDb.py +++ b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimServices/python/ISF_FastCaloSimServicesConfigDb.py @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration """ Configuration database for ISF_FastCaloSimServices @@ -35,3 +35,4 @@ addService("ISF_FastCaloSimServices.ISF_FastCaloSimServicesConfig.getFastHitConv addService("ISF_FastCaloSimServices.ISF_FastCaloSimServicesConfig.getLegacyAFIIFastCaloSimSvc", "ISF_LegacyAFIIFastCaloSimSvc") addService("ISF_FastCaloSimServices.ISF_FastCaloSimServicesConfig.getFastHitConvAlgLegacyAFIIFastCaloSimSvc", "ISF_FastHitConvAlgLegacyAFIIFastCaloSimSvc") addService("ISF_FastCaloSimServices.ISF_FastCaloSimServicesConfig.getFastCaloSimSvcV2", "ISF_FastCaloSimSvcV2") +addService("ISF_FastCaloSimServices.ISF_FastCaloSimServicesConfig.getDNNCaloSimSvc", "ISF_DNNCaloSimSvc") diff --git a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimServices/src/DNNCaloSimSvc.cxx b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimServices/src/DNNCaloSimSvc.cxx new file mode 100644 index 0000000000000000000000000000000000000000..30499bb83790feacacca56d2a6bc2bc137989a28 --- /dev/null +++ b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimServices/src/DNNCaloSimSvc.cxx @@ -0,0 +1,616 @@ +/* + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +*/ + +/////////////////////////////////////////////////////////////////// +// DNNCaloSimSvc.cxx, (c) ATLAS Detector software // +/////////////////////////////////////////////////////////////////// + +// class header include +#include "DNNCaloSimSvc.h" + + +// FastCaloSim includes +#include "ISF_FastCaloSimEvent/TFCSParametrizationBase.h" +#include "ISF_FastCaloSimEvent/TFCSSimulationState.h" +#include "ISF_FastCaloSimEvent/TFCSTruthState.h" +#include "ISF_FastCaloSimEvent/TFCSExtrapolationState.h" +#include "ISF_FastCaloSimParametrization/CaloGeometryFromCaloDDM.h" +#include "ISF_FastCaloSimEvent/FastCaloSim_CaloCell_ID.h" + +//calculators +#include "CaloGeoHelpers/CaloPhiRange.h" + +//! +#include "AtlasDetDescr/AtlasDetectorID.h" +#include "IdDictParser/IdDictParser.h" +#include "CaloIdentifier/LArEM_ID.h" +#include "CaloIdentifier/TileID.h" +//! + +// StoreGate +#include "StoreGate/StoreGateSvc.h" +#include "StoreGate/StoreGate.h" + +#include "CaloDetDescr/CaloDetDescrElement.h" +#include "CaloDetDescr/CaloDetDescrManager.h" +#include "CaloIdentifier/CaloIdManager.h" +#include "LArReadoutGeometry/FCALDetectorManager.h" + +#include "PathResolver/PathResolver.h" + +#include "lwtnn/parse_json.hh" + +#include "TFile.h" +#include <fstream> +#include "CLHEP/Random/RandGauss.h" +#include "CLHEP/Random/RandFlat.h" +#include "CLHEP/Units/SystemOfUnits.h" + +using std::abs; +using std::atan2; + +/** Constructor **/ +ISF::DNNCaloSimSvc::DNNCaloSimSvc(const std::string& name, ISvcLocator* svc) : + BaseSimulationSvc(name, svc), + m_graph(nullptr), + m_theContainer(nullptr), + m_rndGenSvc("AtRndmGenSvc", name), + m_randomEngine(nullptr), + m_caloDetDescrManager(nullptr), + m_caloGeo(nullptr) +{ + declareProperty("ParamsInputFilename" , m_paramsFilename="DNNCaloSim/DNNCaloSim_GAN_nn_v0.json"," lwtnn json output describing the trained network"); + declareProperty("ParamsInputArchitecture" , m_paramsInputArchitecture="GANv0","tag describing additional parameters necessary for the network"); + declareProperty("CaloCellsOutputName" , m_caloCellsOutputName) ; + declareProperty("CaloCellMakerTools_setup" , m_caloCellMakerToolsSetup) ; + declareProperty("CaloCellMakerTools_release" , m_caloCellMakerToolsRelease) ; + declareProperty("RandomSvc" , m_rndGenSvc ); + declareProperty("RandomStream" , m_randomEngineName ); + declareProperty("FastCaloSimCaloExtrapolation" , m_FastCaloSimCaloExtrapolation ); +} + +ISF::DNNCaloSimSvc::~DNNCaloSimSvc() +{} + +/** framework methods */ +StatusCode ISF::DNNCaloSimSvc::initialize() +{ + ATH_MSG_INFO(m_screenOutputPrefix << "Initializing ..."); + + ATH_CHECK(m_rndGenSvc.retrieve()); + m_randomEngine = m_rndGenSvc->GetEngine( m_randomEngineName); + if(!m_randomEngine) + { + ATH_MSG_ERROR("Could not get random number engine from RandomNumberService. Abort."); + return StatusCode::FAILURE; + } + + m_caloDetDescrManager = CaloDetDescrManager::instance(); + const FCALDetectorManager * fcalManager=NULL; + ATH_CHECK(detStore()->retrieve(fcalManager)); + + const CaloIdManager* caloId_mgr = m_caloDetDescrManager->getCalo_Mgr(); + m_emID = caloId_mgr->getEM_ID(); + + m_caloGeo = std::make_unique<CaloGeometryFromCaloDDM>(); + m_caloGeo->LoadGeometryFromCaloDDM(m_caloDetDescrManager); + if(!m_caloGeo->LoadFCalChannelMapFromFCalDDM(fcalManager) )ATH_MSG_FATAL("Found inconsistency between FCal_Channel map and GEO file. Please, check if they are configured properly."); + + + // initialize DNN + if (initializeNetwork().isFailure()) + { + ATH_MSG_ERROR("Could not initialize network "); + return StatusCode::FAILURE; + + } + + + // Get FastCaloSimCaloExtrapolation + if(m_FastCaloSimCaloExtrapolation.retrieve().isFailure()) + { + ATH_MSG_ERROR("FastCaloSimCaloExtrapolation not found "); + return StatusCode::FAILURE; + } + + m_windowCells.reserve(m_numberOfCellsForDNN); + + + + return StatusCode::SUCCESS; +} + +// initialize lwtnn network +StatusCode ISF::DNNCaloSimSvc::initializeNetwork() +{ + + + + // get neural net JSON file as an std::istream object + std::string inputFile=PathResolverFindCalibFile(m_paramsFilename); + if (inputFile.empty()){ + ATH_MSG_ERROR("Could not find json file " << m_paramsFilename ); + return StatusCode::FAILURE; + } + + + + ATH_MSG_INFO("Using json file " << inputFile ); + std::ifstream input(inputFile); + // build the graph + m_graph=std::make_unique<lwt::LightweightGraph>(lwt::parse_json_graph(input) ); + if (m_graph==nullptr){ + ATH_MSG_ERROR("Could not create LightWeightGraph from " << m_paramsFilename ); + return StatusCode::FAILURE; + } + + + + // initialize all necessary constants + // FIXME eventually all these could be stored in the .json file + + ATH_MSG_INFO("Using ParamsInputArchitecture: " << m_paramsInputArchitecture ); + if (m_paramsInputArchitecture=="GANv0") // GAN then VAE etc... + { + m_GANLatentSize = 300; + m_logTrueEnergyMean = 9.70406053; + m_logTrueEnergyScale = 1.76099569; + m_riImpactEtaMean = 3.47603256e-05; + m_riImpactEtaScale = 0.00722316; + m_riImpactPhiMean = -5.42153684e-05; + m_riImpactPhiScale = 0.00708241; + } + + if (m_GANLatentSize==0){ + ATH_MSG_ERROR("m_GANLatentSize uninitialized!.ParamsInputArchitecture= " << m_paramsInputArchitecture ); + return StatusCode::FAILURE; + } + + return StatusCode::SUCCESS; +} + +/** framework methods */ +StatusCode ISF::DNNCaloSimSvc::finalize() +{ + ATH_MSG_INFO(m_screenOutputPrefix << "Finalizing ..."); + return StatusCode::SUCCESS; +} + +StatusCode ISF::DNNCaloSimSvc::setupEvent() +{ + const EventContext& ctx = Gaudi::Hive::currentContext(); + ATH_MSG_INFO(m_screenOutputPrefix << "setupEvent NEW EVENT! "); + + m_theContainer = new CaloCellContainer(SG::VIEW_ELEMENTS); + + StatusCode sc = evtStore()->record(m_theContainer, m_caloCellsOutputName); + if (sc.isFailure()) + { + ATH_MSG_FATAL( m_screenOutputPrefix << "cannot record CaloCellContainer " << m_caloCellsOutputName ); + return StatusCode::FAILURE; + } + + //FIXME why retrieve every event ? + CHECK( m_caloCellMakerToolsSetup.retrieve() ); + ATH_MSG_DEBUG( "Successfully retrieve CaloCellMakerTools: " << m_caloCellMakerToolsSetup ); + ToolHandleArray<ICaloCellMakerTool>::iterator itrTool = m_caloCellMakerToolsSetup.begin(); + ToolHandleArray<ICaloCellMakerTool>::iterator endTool = m_caloCellMakerToolsSetup.end(); + for (; itrTool != endTool; ++itrTool) + { + std::string chronoName=this->name()+"_"+ itrTool->name(); + if (m_chrono) m_chrono->chronoStart(chronoName); + StatusCode sc = (*itrTool)->process(m_theContainer, ctx); + if (m_chrono) { + m_chrono->chronoStop(chronoName); + ATH_MSG_DEBUG( m_screenOutputPrefix << "Chrono stop : delta " << m_chrono->chronoDelta (chronoName,IChronoStatSvc::USER) * CLHEP::microsecond / CLHEP::second << " second " ); + } + + if (sc.isFailure()) + { + ATH_MSG_ERROR( m_screenOutputPrefix << "Error executing tool " << itrTool->name() ); + return StatusCode::FAILURE; + } + } + + + // FIXME just for debugging + // exercise window building + // should be false by default + // careful:if enabled change the random number sequence ! + if (false){ + TFCSSimulationState testsimulstate(m_randomEngine); + const CaloDetDescrElement * testImpactCellDDE; + const int ntrial=100; + ATH_MSG_INFO ("Trial window building on " << ntrial << " dummy eta phi " ); + for (int i=0 ; i< ntrial ; i++){ + const double eta = CLHEP::RandFlat::shoot(testsimulstate.randomEngine(), 0.2, 0.25); + const double phi = CLHEP::RandFlat::shoot(testsimulstate.randomEngine(), -CLHEP::pi , CLHEP::pi); + + //randomise eta, phi + if (fillWindowCells(eta,phi,testImpactCellDDE).isFailure()){ + ATH_MSG_WARNING("Could not build trial window cells vector with eta " << eta << " phi " << phi); + } + } + ATH_MSG_INFO ("End of trial window building on " << ntrial << " dummy eta phi " ); + + } + + + + + return StatusCode::SUCCESS; +} + +StatusCode ISF::DNNCaloSimSvc::releaseEvent() +{ + const EventContext& ctx = Gaudi::Hive::currentContext(); + ATH_MSG_VERBOSE(m_screenOutputPrefix << "release Event"); + + CHECK( m_caloCellMakerToolsRelease.retrieve() ); + + //run release tools in a loop + ToolHandleArray<ICaloCellMakerTool>::iterator itrTool = m_caloCellMakerToolsRelease.begin(); + ToolHandleArray<ICaloCellMakerTool>::iterator endTool = m_caloCellMakerToolsRelease.end(); + for (; itrTool != endTool; ++itrTool) + { + ATH_MSG_VERBOSE( m_screenOutputPrefix << "Calling tool " << itrTool->name() ); + + StatusCode sc = (*itrTool)->process(m_theContainer, ctx); + + if (sc.isFailure()) + { + ATH_MSG_ERROR( m_screenOutputPrefix << "Error executing tool " << itrTool->name() ); + } + } + + return StatusCode::SUCCESS; + +} +bool compCellsForDNNSortMirror(const CaloCell* a, const CaloCell* b) +{ + static CaloPhiRange range; + CaloCell_ID::CaloSample aSampling = a->caloDDE()->getSampling(); + CaloCell_ID::CaloSample bSampling = b->caloDDE()->getSampling(); + + float aEtaRaw = a->caloDDE()->eta_raw(); + float bEtaRaw = b->caloDDE()->eta_raw(); + + float aPhiRaw = a->caloDDE()->phi_raw(); + float bPhiRaw = b->caloDDE()->phi_raw(); + + if ((aSampling) < (bSampling)) + return true; + else if ((aSampling) > (bSampling)) + return false; + // reverse sort in eta for left half of detector + if ((aEtaRaw) < (bEtaRaw)) + return false; + else if ((aEtaRaw) > (bEtaRaw)) + return true; + + if (range.diff(aPhiRaw, bPhiRaw) > 0){ + return false; + } + + return true; +} + +bool compCellsForDNNSort(const CaloCell* a, const CaloCell* b) +{ + static CaloPhiRange range; + CaloCell_ID::CaloSample aSampling = a->caloDDE()->getSampling(); + CaloCell_ID::CaloSample bSampling = b->caloDDE()->getSampling(); + + float aEtaRaw = a->caloDDE()->eta_raw(); + float bEtaRaw = b->caloDDE()->eta_raw(); + + float aPhiRaw = a->caloDDE()->phi_raw(); + float bPhiRaw = b->caloDDE()->phi_raw(); + + if ((aSampling) < (bSampling)) + return true; + else if ((aSampling) > (bSampling)) + return false; + + if ((aEtaRaw) < (bEtaRaw)) + return true; + else if ((aEtaRaw) > (bEtaRaw)) + return false; + +if (range.diff(aPhiRaw, bPhiRaw) > 0){ + return false; + } + + return true; +} + +/** Simulation Call */ +StatusCode ISF::DNNCaloSimSvc::simulate(const ISF::ISFParticle& isfp, McEventCollection*) +{ + + ATH_MSG_VERBOSE("NEW PARTICLE! DNNCaloSimSvc called with ISFParticle: " << isfp); + + + //Don't simulate particles with total energy below 10 MeV + if(isfp.ekin() < 10) { + ATH_MSG_VERBOSE("Skipping particle with Ekin: " << isfp.ekin() <<" MeV. Below the 10 MeV threshold."); + return StatusCode::SUCCESS; + } + + + //Compute all inputs to the network + NetworkInputs inputs; + double trueEnergy; + if (fillNetworkInputs(isfp,inputs,trueEnergy).isFailure()) { + ATH_MSG_WARNING("Could not initialize network "); + // bail out but do not stop the job + return StatusCode::SUCCESS; + } + + + // compute the network output values + ATH_MSG_VERBOSE("neural network input = "<<inputs); + NetworkOutputs outputs = m_graph->compute(inputs); + ATH_MSG_VERBOSE("neural network output = "<<outputs); + + + // add network output energy in the right place in the calorimeter + int itr = 0; + for ( auto & windowCell : m_windowCells) { + windowCell->addEnergy(trueEnergy * outputs[std::to_string(itr)]); + itr++; + + ATH_MSG_VERBOSE(" cell eta_raw " << windowCell->caloDDE()->eta_raw() + << " phi_raw " << windowCell->caloDDE()->phi_raw() + << " sampling " << windowCell->caloDDE()->getSampling() + << " energy " << windowCell->energy()); + } + + + + + + return StatusCode::SUCCESS; +} + + + +// compute all the necessary inputs to the network +StatusCode ISF::DNNCaloSimSvc::fillNetworkInputs(const ISF::ISFParticle& isfp, NetworkInputs & inputs, double & trueEnergy) +{ + static CaloPhiRange range; + Amg::Vector3D particle_position = isfp.position(); + Amg::Vector3D particle_direction(isfp.momentum().x(),isfp.momentum().y(),isfp.momentum().z()); + + //int barcode=isfp.barcode(); // isfp barcode, eta and phi: in case we need them + // float eta_isfp = particle_position.eta(); + // float phi_isfp = particle_position.phi(); + + TFCSTruthState truth(isfp.momentum().x(),isfp.momentum().y(),isfp.momentum().z(),sqrt(isfp.momentum().mag2()+pow(isfp.mass(),2)),isfp.pdgCode()); + truth.set_vertex(particle_position[Amg::x], particle_position[Amg::y], particle_position[Amg::z]); + + trueEnergy = isfp.ekin(); + + + TFCSExtrapolationState extrapol; + //FIXME this is extrapolating to many layers, when we only need middle layer middle surface + //FIXME could have dedicated extrapolation to save time + m_FastCaloSimCaloExtrapolation->extrapolate(extrapol,&truth); + // extrapol.Print(); + + + if (false) + { + for (int isam=0; isam< CaloCell_ID_FCS::MaxSample ; isam++){ + //enum SUBPOS { SUBPOS_MID = 0, SUBPOS_ENT = 1, SUBPOS_EXT = 2}; //MID=middle, ENT=entrance, EXT=exit of cal layer + + for (int isubpos=0; isubpos< 3 ; isubpos++){ + + ATH_MSG_VERBOSE("EXTRAPO isam=" << isam << + " isubpos=" << isubpos << + " OK=" << extrapol.OK(isam,isubpos) << + " eta=" << extrapol.eta(isam,isubpos) << + " phi=" << extrapol.phi(isam,isubpos) << + " r=" << extrapol.r(isam,isubpos) ); + + } + } + } + + //FIXME deal with endcap as well + int isam=CaloCell_ID_FCS::EMB2; + int isubpos=SUBPOS_ENT; + double etaExtrap=-999.; + double phiExtrap=-999.; + if (extrapol.eta(isam,isubpos)) { + etaExtrap=extrapol.eta(isam,isubpos); + phiExtrap=extrapol.phi(isam,isubpos); + } + + ATH_MSG_VERBOSE("Will use isam=" << isam << + " isubpos=" << isubpos << + " eta=" << etaExtrap << + " phi=" << phiExtrap ); + + + + // fill vector of cells, and DDE of middle cell + const CaloDetDescrElement * impactCellDDE; + if (fillWindowCells(etaExtrap,phiExtrap,impactCellDDE).isFailure()){ + ATH_MSG_WARNING("Could not build window cells vector "); + return StatusCode::FAILURE; + } + + + // start neural network part + // fill a map of input nodes + // this is for GAN + // most likely it should be specialised as a function of m_ParamsInputArchitecture + + double randGaussz = 0.; + + + int impactEtaIndex = m_emID->eta(impactCellDDE->identify()); + int impactPhiIndex = m_emID->phi(impactCellDDE->identify()); + double etaRawImpactCell=impactCellDDE->eta_raw(); + double phiRawImpactCell=impactCellDDE->phi_raw(); + + ATH_MSG_VERBOSE("impact eta_index " << impactEtaIndex + << " phi_index " << impactPhiIndex + << " sampling " << m_emID->sampling(impactCellDDE->identify())); + + int pconf = impactPhiIndex % 4 ; + int econf = (impactEtaIndex + 1) % 2 ; // ofset corresponds to difference in index calculated for neural net preprocessing + + double riImpactEta = (etaExtrap - etaRawImpactCell); + // mirror for left half + if (etaExtrap < 0){ + riImpactEta *= -1.; + + } + // scale & centre + riImpactEta = (riImpactEta - m_riImpactEtaMean)/m_riImpactEtaScale; + double riImpactPhi = (range.diff(phiExtrap, phiRawImpactCell) - m_riImpactPhiMean)/m_riImpactPhiScale; + + + // fill randomize latent space + TFCSSimulationState simulstate(m_randomEngine); + + //FIXME generate in one go + for (int i = 0; i< m_GANLatentSize; i ++) + { + randGaussz = CLHEP::RandGauss::shoot(simulstate.randomEngine(), 0., 1.); + inputs["Z"].insert ( std::pair<std::string,double>(std::to_string(i), randGaussz) ); + + } + + // fill preprocessed true energy + inputs["E_true"].insert ( std::pair<std::string,double>("0", (std::log(trueEnergy) - m_logTrueEnergyMean)/m_logTrueEnergyScale) ); + // fill p,e configurations multi-hot vector + for (int i = 0; i< 4; i ++) + { + if (i == pconf){ + inputs["pconfig"].insert ( std::pair<std::string,double>(std::to_string(i),1.) ); + } + else{ + inputs["pconfig"].insert ( std::pair<std::string,double>(std::to_string(i),0.) ); + } + } + for (int i = 0; i< 2; i ++){ + if (i == econf){ + inputs["econfig"].insert ( std::pair<std::string,double>(std::to_string(i),1.) ); + } + else{ + inputs["econfig"].insert ( std::pair<std::string,double>(std::to_string(i),0.) ); + } + } + // fill position of extrap particle in impact cell + inputs["ripos"].insert ( std::pair<std::string,double>("0", riImpactEta) ); + inputs["ripos"].insert ( std::pair<std::string,double>("1", riImpactPhi ) ); + + return StatusCode::SUCCESS; +} + + +StatusCode ISF::DNNCaloSimSvc::fillWindowCells(const double etaExtrap,const double phiExtrap,const CaloDetDescrElement* & impactCellDDE) { + + //now find the cell it corresponds to + //FIXME this is barrel should also look in endcap + // (note that is really looking up eta, phi, not raw eta phi + static CaloPhiRange range; + + impactCellDDE=m_caloDetDescrManager->get_element(CaloCell_ID::EMB2,etaExtrap,phiExtrap); + if (impactCellDDE==nullptr){ + ATH_MSG_WARNING("No cell found for this eta " << etaExtrap << " phi " << phiExtrap); + return StatusCode::FAILURE; + } + + + + + const int caloHashImpactCell=impactCellDDE->calo_hash(); + const double etaImpactCell=impactCellDDE->eta(); + const double phiImpactCell=impactCellDDE->phi(); + const double etaRawImpactCell=impactCellDDE->eta_raw(); + const double phiRawImpactCell=impactCellDDE->phi_raw(); + + + ATH_MSG_VERBOSE("impact cell calohash=" << caloHashImpactCell << + " eta=" << etaImpactCell << + " phi=" << phiImpactCell << + " eta raw=" << etaRawImpactCell << + " phi raw=" << phiRawImpactCell ); + + + int nSqCuts = 0; + + + // select the cells DNN will simulate + // note that m_theCellContainer has all the calorimeter cells + // this will hold the list of cells to simulate + //FIXME this can be sped up certainly + m_windowCells.clear(); + CaloCell_ID::CaloSample sampling; + float eta_raw; + float phi_raw; + for(const auto& theCell : * m_theContainer) { + sampling = theCell->caloDDE()->getSampling(); + eta_raw = theCell->caloDDE()->eta_raw(); + phi_raw = theCell->caloDDE()->phi_raw(); + if (( eta_raw < etaRawImpactCell + m_etaRawBackCut) && (eta_raw > etaRawImpactCell - m_etaRawBackCut)) { + if ((range.diff(phi_raw, phiRawImpactCell) < m_phiRawStripCut ) && (range.diff(phi_raw, phiRawImpactCell) > - m_phiRawStripCut) ) { + + } + else{ + continue; + } + } + else{ + continue; + } + + if ((sampling == 0) || (sampling == 1) ){ + if ((eta_raw < etaRawImpactCell + m_etaRawMiddleCut) && (eta_raw > etaRawImpactCell - m_etaRawMiddleCut)) { + nSqCuts ++; + // add to vector + m_windowCells.push_back(theCell); + + } + } + else if((sampling == 2)) { + if ((range.diff(phi_raw , phiRawImpactCell) < m_phiRawMiddleCut) && (range.diff(phi_raw, phiRawImpactCell) > - m_phiRawMiddleCut)) { + if ((eta_raw < etaRawImpactCell + m_etaRawMiddleCut) && (eta_raw > etaRawImpactCell - m_etaRawMiddleCut)) { + nSqCuts ++; + m_windowCells.push_back(theCell); + } + } + } + + else if(sampling == 3){ + if ((range.diff(phi_raw, phiRawImpactCell) < m_phiRawMiddleCut) && (range.diff(phi_raw , phiRawImpactCell) > - m_phiRawMiddleCut )) { + nSqCuts ++; + m_windowCells.push_back(theCell); + } + + } + } + + if (nSqCuts != m_numberOfCellsForDNN){ + ATH_MSG_WARNING("Total cells passing DNN selection is " << nSqCuts << " but should be " << m_numberOfCellsForDNN ); + // bail out, but do not stop the job + return StatusCode::FAILURE; + + } + + //sort cells within the cluster like they are fed to DNN + if (etaRawImpactCell < 0){ + std::sort(m_windowCells.begin(), m_windowCells.end(), &compCellsForDNNSortMirror); + } + else{ + std::sort(m_windowCells.begin(), m_windowCells.end(), &compCellsForDNNSort); + } + + return StatusCode::SUCCESS; + +} diff --git a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimServices/src/DNNCaloSimSvc.h b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimServices/src/DNNCaloSimSvc.h new file mode 100644 index 0000000000000000000000000000000000000000..03f75dd0ec9354af87986c8f16835c2b2791825d --- /dev/null +++ b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimServices/src/DNNCaloSimSvc.h @@ -0,0 +1,132 @@ +/* + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +*/ + +////////////////////////////////////////////////////////////////// +// DNNCaloSimSvc.h, (c) ATLAS Detector software +/////////////////////////////////////////////////////////////////// + +#ifndef ISF_DNNCALOSIMSVC_H +#define ISF_DNNCALOSIMSVC_H 1 + +// ISF includes +#include "ISF_Interfaces/BaseSimulationSvc.h" + +// Framework includes +#include "GaudiKernel/IChronoStatSvc.h" + +// FastCaloSim includes +#include "ISF_FastCaloSimParametrization/IFastCaloSimCaloExtrapolation.h" +#include "TrkExInterfaces/ITimedExtrapolator.h" + +#include "CaloInterface/ICaloCellMakerTool.h" + +#include "AthenaKernel/IAtRndmGenSvc.h" + +#include "AtlasDetDescr/AtlasDetectorID.h" +#include "CaloIdentifier/LArEM_ID.h" +#include "CaloIdentifier/LArHEC_ID.h" +#include "CaloIdentifier/LArFCAL_ID.h" +#include "CaloIdentifier/TileID.h" +#include "CaloDetDescr/CaloDetDescrManager.h" + +#include "lwtnn/LightweightGraph.hh" +#include "CaloEvent/CaloCellContainer.h" +#include "CLHEP/Units/PhysicalConstants.h" + +namespace CLHEP +{ + class HepRandomEngine; +} + +//forward declarations +class CaloCellContainer; +class CaloGeometryFromCaloDDM; +class TFCSParametrizationBase; + + +namespace ISF { + /** @class DNNCaloSimSvc + + @author Aishik.Ghosh -at- cern.ch, David Rousseau -at- cern.ch, + */ + + class DNNCaloSimSvc : public BaseSimulationSvc + { + public: + /** Constructor with parameters */ + DNNCaloSimSvc(const std::string& name, ISvcLocator* pSvcLocator); + + /** Destructor */ + virtual ~DNNCaloSimSvc() final; + + /** Athena algorithm's interface methods */ + virtual StatusCode initialize() override final; + virtual StatusCode finalize() override final; + + /** helper for initialize */ + StatusCode initializeNetwork(); + + /** Simulation Call */ + virtual StatusCode simulate(const ISFParticle& isp, McEventCollection*) override final; + // type of input requested by lwtnn + typedef std::map<std::string, std::map<std::string, double> > NetworkInputs ; + typedef std::map<std::string, double> NetworkOutputs; + StatusCode fillNetworkInputs(const ISF::ISFParticle& isfp, NetworkInputs & inputs, double & trueEnergy); + StatusCode fillWindowCells(const double etaExtrap,const double phiExtrap,const CaloDetDescrElement* & impactCellDDE); + + /** Setup Event chain - in case of a begin-of event action is needed */ + virtual StatusCode setupEvent() override final; + + /** Release Event chain - in case of an end-of event action is needed */ + virtual StatusCode releaseEvent() override final; + + std::string m_paramsFilename; + std::string m_paramsInputArchitecture; + + std::unique_ptr<lwt::LightweightGraph> m_graph; + + ToolHandleArray<ICaloCellMakerTool> m_caloCellMakerToolsSetup ; + ToolHandleArray<ICaloCellMakerTool> m_caloCellMakerToolsRelease ; + + ToolHandle<IFastCaloSimCaloExtrapolation> m_FastCaloSimCaloExtrapolation; + ToolHandle<Trk::ITimedExtrapolator> m_extrapolator; + + CaloCellContainer * m_theContainer; + + ServiceHandle<IAtRndmGenSvc> m_rndGenSvc; + CLHEP::HepRandomEngine* m_randomEngine; + std::string m_randomEngineName; + + + const CaloDetDescrManager* m_caloDetDescrManager; + std::unique_ptr<CaloGeometryFromCaloDDM> m_caloGeo; + const LArEM_ID* m_emID; + std::vector<CaloCell*> m_windowCells; + + // specific to architecture + // preprocessing of input + int m_GANLatentSize = 0; + double m_logTrueEnergyMean = 0.; + double m_logTrueEnergyScale = 0.; + double m_riImpactEtaMean = 0.; + double m_riImpactEtaScale = 0.; + double m_riImpactPhiMean = 0.; + double m_riImpactPhiScale = 0.; + + // building of the 266 cells cluster + const int m_numberOfCellsForDNN = 266; + const double m_middleCellWidthEta = 0.025; + const double m_middleCellWidthPhi = CLHEP::pi / std::pow(2,7); + const double m_etaRawMiddleCut = m_middleCellWidthEta * 3.5; + const double m_etaRawBackCut = m_middleCellWidthEta * 4.; + const double m_phiRawMiddleCut = m_middleCellWidthPhi * 3.5; + const double m_phiRawStripCut = m_middleCellWidthPhi * 6.0; + + + std::string m_caloCellsOutputName; + }; + +} + +#endif //> !ISF_DNNCALOSIMSVC_H diff --git a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimServices/src/components/ISF_FastCaloSimServices_entries.cxx b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimServices/src/components/ISF_FastCaloSimServices_entries.cxx index 703317432b741717eb2d0908a04fba7c6f401cc5..8c8150c4f6f7a790d7a6782eb153fc7ed3d5784f 100644 --- a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimServices/src/components/ISF_FastCaloSimServices_entries.cxx +++ b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimServices/src/components/ISF_FastCaloSimServices_entries.cxx @@ -1,8 +1,10 @@ +#include "../DNNCaloSimSvc.h" #include "../FastCaloSimSvc.h" #include "../FastCaloSimSvcV2.h" #include "../FastCaloSimSvcPU.h" #include "../FastCaloTool.h" +DECLARE_COMPONENT( ISF::DNNCaloSimSvc ) DECLARE_COMPONENT( ISF::FastCaloSimSvc ) DECLARE_COMPONENT( ISF::FastCaloSimSvcV2 ) DECLARE_COMPONENT( ISF::FastCaloSimSvcPU ) diff --git a/Simulation/ISF/ISF_SimulationSelectors/python/ISF_SimulationSelectorsConfig.py b/Simulation/ISF/ISF_SimulationSelectors/python/ISF_SimulationSelectorsConfig.py index fe3e9f4fd199294020c64ece2f92375a25186a26..5b9304d419894f0bbd2662ca68c1159e1ef160a1 100644 --- a/Simulation/ISF/ISF_SimulationSelectors/python/ISF_SimulationSelectorsConfig.py +++ b/Simulation/ISF/ISF_SimulationSelectors/python/ISF_SimulationSelectorsConfig.py @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration """ ISF_SimulationSelectors configurations for ISF Elmar Ritsch, 04/02/2013 @@ -63,6 +63,10 @@ def getDefaultFastCaloSimV2Selector(name="ISF_DefaultFastCaloSimV2Selector", **k kwargs.setdefault('SimulationFlavor', SimulationFlavor.FastCaloSimV2) return getDefaultSimSelector(name, **kwargs ) +def getDefaultDNNCaloSimSelector(name="ISF_DefaultDNNCaloSimSelector", **kwargs): + kwargs.setdefault("Simulator" , 'ISF_DNNCaloSimSvc') + return getDefaultSimSelector(name, **kwargs ) + def getFastHitConvAlgFastCaloSimSelector(name="ISF_FastHitConvAlgFastCaloSimSelector", **kwargs): kwargs.setdefault("Simulator" , 'ISF_FastHitConvAlgFastCaloSimSvc') kwargs.setdefault('SimulationFlavor', SimulationFlavor.FastCaloSim) diff --git a/Simulation/ISF/ISF_SimulationSelectors/python/ISF_SimulationSelectorsConfigDb.py b/Simulation/ISF/ISF_SimulationSelectors/python/ISF_SimulationSelectorsConfigDb.py index f64e7493ed7af2dd2d477c7e44e45087868f7901..d166e8912ba81e339dd4356e6c703cb500c3ccf1 100644 --- a/Simulation/ISF/ISF_SimulationSelectors/python/ISF_SimulationSelectorsConfigDb.py +++ b/Simulation/ISF/ISF_SimulationSelectors/python/ISF_SimulationSelectorsConfigDb.py @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration """ Configuration database for ISF_SimulationSelectors Elmar Ritsch, 10/11/2014 @@ -36,6 +36,7 @@ addTool("ISF_SimulationSelectors.ISF_SimulationSelectorsConfig.getFastCaloSimPil addTool("ISF_SimulationSelectors.ISF_SimulationSelectorsConfig.getFastHitConvAlgFastCaloSimSelector" , "ISF_FastHitConvAlgFastCaloSimSelector" ) addTool("ISF_SimulationSelectors.ISF_SimulationSelectorsConfig.getDefaultLegacyAFIIFastCaloSimSelector" , "ISF_DefaultLegacyAFIIFastCaloSimSelector") addTool("ISF_SimulationSelectors.ISF_SimulationSelectorsConfig.getDefaultFastCaloSimV2Selector" , "ISF_DefaultFastCaloSimV2Selector" ) +addTool("ISF_SimulationSelectors.ISF_SimulationSelectorsConfig.getDefaultDNNCaloSimSelector" , "ISF_DefaultDNNCaloSimSelector" ) addTool("ISF_SimulationSelectors.ISF_SimulationSelectorsConfig.getFastHitConvAlgLegacyAFIIFastCaloSimSelector" , "ISF_FastHitConvAlgLegacyAFIIFastCaloSimSelector") addTool("ISF_SimulationSelectors.ISF_SimulationSelectorsConfig.getDefaultFatrasSelector" , "ISF_DefaultFatrasSelector" ) addTool("ISF_SimulationSelectors.ISF_SimulationSelectorsConfig.getDefaultFatrasNewExtrapolationSelector", "ISF_DefaultFatrasNewExtrapolationSelector") diff --git a/Simulation/ISF/ISF_Validation/test/test_ATLFASTII_ttbar_2evts.sh b/Simulation/ISF/ISF_Validation/test/test_ATLFASTII_ttbar_2evts.sh index 00b52d0a5da2a33b1edb4a51331c04a11f9b409a..654071172b2c9653a9bdd5f828229197cf90e21f 100755 --- a/Simulation/ISF/ISF_Validation/test/test_ATLFASTII_ttbar_2evts.sh +++ b/Simulation/ISF/ISF_Validation/test/test_ATLFASTII_ttbar_2evts.sh @@ -3,7 +3,6 @@ # art-description: MC15-style simulation using ATLFASTII # art-type: build # art-include: 21.0/Athena -# art-include: 21.0/AthSimulation # art-include: 21.3/Athena # art-include: 21.9/Athena # art-include: master/Athena diff --git a/Simulation/ISF/ISF_Validation/test/test_FullG4_LongLived_ZPrime_2evts.sh b/Simulation/ISF/ISF_Validation/test/test_FullG4_LongLived_ZPrime_2evts.sh index cd2efce781b87b791ac819deb649c43104d62d2e..9f833ade127be6f8bd804dd1c3d994da76f851af 100755 --- a/Simulation/ISF/ISF_Validation/test/test_FullG4_LongLived_ZPrime_2evts.sh +++ b/Simulation/ISF/ISF_Validation/test/test_FullG4_LongLived_ZPrime_2evts.sh @@ -3,7 +3,6 @@ # art-description: MC15-style simulation using FullG4_LongLived # art-type: build # art-include: 21.0/Athena -# art-include: 21.0/AthSimulation # art-include: 21.3/Athena # art-include: 21.9/Athena # art-include: master/Athena diff --git a/TileCalorimeter/TileSvc/TileByteStream/TileByteStream/TileBeamElemContByteStreamCnv.h b/TileCalorimeter/TileSvc/TileByteStream/TileByteStream/TileBeamElemContByteStreamCnv.h index 768c77b43d4483bd7d6f5a874b847439fdb150b3..e491d81a0db5c917c0805ec88a3f252f72a82d8e 100644 --- a/TileCalorimeter/TileSvc/TileByteStream/TileByteStream/TileBeamElemContByteStreamCnv.h +++ b/TileCalorimeter/TileSvc/TileByteStream/TileByteStream/TileBeamElemContByteStreamCnv.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #ifndef TILEBYTESTREAM_TILEBEAMELEM_BYTESTREAMCNV_H @@ -35,9 +35,6 @@ class TileROD_Decoder; // Abstract factory to create the converter template <class TYPE> class CnvFactory; -// Externals -extern long ByteStream_StorageType; - /** * @class TileBeamElemContByteStreamCnv * @brief This Converter class provides conversion from ByteStream to TileBeamElemContainer @@ -57,8 +54,8 @@ class TileBeamElemContByteStreamCnv virtual StatusCode finalize() override; /// Storage type and class ID - virtual long repSvcType() const override { return ByteStream_StorageType; } - static long storageType() { return ByteStream_StorageType; } + virtual long repSvcType() const override { return i_repSvcType(); } + static long storageType(); static const CLID& classID(); // FIXME: Eliminate this backdoor access to RAW data. diff --git a/TileCalorimeter/TileSvc/TileByteStream/TileByteStream/TileDigitsContByteStreamCnv.h b/TileCalorimeter/TileSvc/TileByteStream/TileByteStream/TileDigitsContByteStreamCnv.h index 3a30d56982a272c60829a163af28f9072145a7fb..1318cf163fa0dae3a51c533699a4a5004ae8c907 100644 --- a/TileCalorimeter/TileSvc/TileByteStream/TileByteStream/TileDigitsContByteStreamCnv.h +++ b/TileCalorimeter/TileSvc/TileByteStream/TileByteStream/TileDigitsContByteStreamCnv.h @@ -33,9 +33,6 @@ class TileROD_Decoder; // Abstract factory to create the converter template <class TYPE> class CnvFactory; -// Externals -extern long ByteStream_StorageType; - /** * @class TileDigitsContByteStreamCnv * @brief This Converter class provides conversion from ByteStream to TileDigitsContainer @@ -61,8 +58,8 @@ class TileDigitsContByteStreamCnv virtual StatusCode finalize() override; /// Storage type and class ID - virtual long repSvcType() const override { return ByteStream_StorageType; } - static long storageType() { return ByteStream_StorageType; } + virtual long repSvcType() const override { return i_repSvcType(); } + static long storageType(); static const CLID& classID(); private: diff --git a/TileCalorimeter/TileSvc/TileByteStream/TileByteStream/TileL2ContByteStreamCnv.h b/TileCalorimeter/TileSvc/TileByteStream/TileByteStream/TileL2ContByteStreamCnv.h index 889d2778e57b0d1c9853b6d83d1493a4a1a984b1..fa3dd8144264ad1a838841babe572da88a000a43 100644 --- a/TileCalorimeter/TileSvc/TileByteStream/TileByteStream/TileL2ContByteStreamCnv.h +++ b/TileCalorimeter/TileSvc/TileByteStream/TileByteStream/TileL2ContByteStreamCnv.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #ifndef TILEBYTESTREAM_TILEL2_BYTESTREAMCNV_H @@ -28,9 +28,6 @@ class TileROD_Decoder; // Abstract factory to create the converter template <class TYPE> class CnvFactory; -// Externals -extern long ByteStream_StorageType; - class TileRecyclableL2Container : public TileL2Container, public DataObject @@ -79,8 +76,8 @@ class TileL2ContByteStreamCnv virtual StatusCode finalize() override; /// Storage type and class ID - virtual long repSvcType() const override { return ByteStream_StorageType; } - static long storageType() { return ByteStream_StorageType; } + virtual long repSvcType() const override { return i_repSvcType(); } + static long storageType(); static const CLID& classID(); private: diff --git a/TileCalorimeter/TileSvc/TileByteStream/TileByteStream/TileLaserObjByteStreamCnv.h b/TileCalorimeter/TileSvc/TileByteStream/TileByteStream/TileLaserObjByteStreamCnv.h index 6d314588435048e2e86b95f030957ae7ca552a23..280adf13ebec28eaa6ba03905cb8d65e8b085cc4 100644 --- a/TileCalorimeter/TileSvc/TileByteStream/TileByteStream/TileLaserObjByteStreamCnv.h +++ b/TileCalorimeter/TileSvc/TileByteStream/TileByteStream/TileLaserObjByteStreamCnv.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ //author Renato Febbraro @@ -35,8 +35,6 @@ class TileHid2RESrcID; // Abstract factory to create the converter template <class TYPE> class CnvFactory; -// Externals -extern long ByteStream_StorageType; class TileLaserObjByteStreamCnv : public Converter @@ -47,13 +45,13 @@ class TileLaserObjByteStreamCnv typedef TileLaserObjByteStreamTool BYTESTREAMTOOL ; - virtual StatusCode initialize(); - virtual StatusCode createObj(IOpaqueAddress* pAddr, DataObject*& pObj); - virtual StatusCode createRep(DataObject* pObj, IOpaqueAddress*& pAddr); + virtual StatusCode initialize() override; + virtual StatusCode createObj(IOpaqueAddress* pAddr, DataObject*& pObj) override; + virtual StatusCode createRep(DataObject* pObj, IOpaqueAddress*& pAddr) override; /// Storage type and class ID - virtual long repSvcType() const { return ByteStream_StorageType; } - static long storageType() { return ByteStream_StorageType; } + virtual long repSvcType() const override { return i_repSvcType(); } + static long storageType(); static const CLID& classID(); private: diff --git a/TileCalorimeter/TileSvc/TileByteStream/TileByteStream/TileMuRcvContByteStreamCnv.h b/TileCalorimeter/TileSvc/TileByteStream/TileByteStream/TileMuRcvContByteStreamCnv.h index 67ba746f3faaaf993e852ad3e336f217d2459505..7a0a28374e5b794136cb3cb97c07417df20f605d 100644 --- a/TileCalorimeter/TileSvc/TileByteStream/TileByteStream/TileMuRcvContByteStreamCnv.h +++ b/TileCalorimeter/TileSvc/TileByteStream/TileByteStream/TileMuRcvContByteStreamCnv.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #ifndef TILEBYTESTREAM_TILEMURCVCONTBYTESTREAMCNV_H @@ -24,9 +24,6 @@ class TileROD_Decoder; // Abstract factory to create the converter template <class TYPE> class CnvFactory; -// Externals -extern long ByteStream_StorageType; - /** * @class TileMuRcvContByteStreamCnv @@ -51,8 +48,8 @@ class TileMuRcvContByteStreamCnv virtual StatusCode finalize() override; /// Storage type and class ID - virtual long repSvcType() const override { return ByteStream_StorageType; } - static long storageType() { return ByteStream_StorageType; } + virtual long repSvcType() const override { return i_repSvcType(); } + static long storageType(); static const CLID& classID(); private: diff --git a/TileCalorimeter/TileSvc/TileByteStream/TileByteStream/TileRawChannelContByteStreamCnv.h b/TileCalorimeter/TileSvc/TileByteStream/TileByteStream/TileRawChannelContByteStreamCnv.h index 0aea20c6954f042f30c5f9e595a7d598c9c79e50..4c90241ec5efd8cf0cde39972fff56dcd2541b1e 100644 --- a/TileCalorimeter/TileSvc/TileByteStream/TileByteStream/TileRawChannelContByteStreamCnv.h +++ b/TileCalorimeter/TileSvc/TileByteStream/TileByteStream/TileRawChannelContByteStreamCnv.h @@ -38,8 +38,6 @@ class TileROD_Decoder; // Abstract factory to create the converter template <class TYPE> class CnvFactory; -// Externals -extern long ByteStream_StorageType; class TileRawChannelContByteStreamCnv : public Converter @@ -56,8 +54,8 @@ class TileRawChannelContByteStreamCnv virtual StatusCode finalize() override; /// Storage type and class ID - virtual long repSvcType() const override { return ByteStream_StorageType; } - static long storageType() { return ByteStream_StorageType; } + virtual long repSvcType() const override { return i_repSvcType(); } + static long storageType(); static const CLID& classID(); private: diff --git a/TileCalorimeter/TileSvc/TileByteStream/src/TileBeamElemContByteStreamCnv.cxx b/TileCalorimeter/TileSvc/TileByteStream/src/TileBeamElemContByteStreamCnv.cxx index e79682d06430d2848744db87bde31f6ec98decfc..0ecea833775f5d9b6f9546768165b55e58dbc69d 100644 --- a/TileCalorimeter/TileSvc/TileByteStream/src/TileBeamElemContByteStreamCnv.cxx +++ b/TileCalorimeter/TileSvc/TileByteStream/src/TileBeamElemContByteStreamCnv.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ // Gaudi includes @@ -30,7 +30,7 @@ TileBeamElemContByteStreamCnv::TileBeamElemContByteStreamCnv(ISvcLocator* svcloc) - : Converter(ByteStream_StorageType, classID(), svcloc) + : Converter(storageType(), classID(), svcloc) , ::AthMessaging(msgSvc(), "TileBeamElemContByteStreamCnv") , m_name("TileBeamElemContByteStreamCnv") , m_robSvc("ROBDataProviderSvc", m_name) @@ -42,6 +42,7 @@ TileBeamElemContByteStreamCnv::TileBeamElemContByteStreamCnv(ISvcLocator* svcloc const CLID& TileBeamElemContByteStreamCnv::classID() {return ClassID_traits<TileBeamElemContainer>::ID();} +long TileBeamElemContByteStreamCnv::storageType() { return ByteStreamAddress::storageType(); } StatusCode TileBeamElemContByteStreamCnv::initialize() { diff --git a/TileCalorimeter/TileSvc/TileByteStream/src/TileDigitsContByteStreamCnv.cxx b/TileCalorimeter/TileSvc/TileByteStream/src/TileDigitsContByteStreamCnv.cxx index 042981523935eba418722055d22707416de06557..7f7cbb91fb69dd808fec485cbb667e6694c04526 100644 --- a/TileCalorimeter/TileSvc/TileByteStream/src/TileDigitsContByteStreamCnv.cxx +++ b/TileCalorimeter/TileSvc/TileByteStream/src/TileDigitsContByteStreamCnv.cxx @@ -39,7 +39,7 @@ TileDigitsContByteStreamCnv::TileDigitsContByteStreamCnv(ISvcLocator* svcloc) - : Converter(ByteStream_StorageType, classID(), svcloc) + : Converter(storageType(), classID(), svcloc) , ::AthMessaging(msgSvc(), "TileDigitsContByteStreamCnv") , m_name("TileDigitsContByteStreamCnv") , m_tool("TileDigitsContByteStreamTool") @@ -53,6 +53,7 @@ TileDigitsContByteStreamCnv::TileDigitsContByteStreamCnv(ISvcLocator* svcloc) const CLID& TileDigitsContByteStreamCnv::classID(){ return ClassID_traits<TileDigitsContainer>::ID();} +long TileDigitsContByteStreamCnv::storageType() { return ByteStreamAddress::storageType(); } StatusCode TileDigitsContByteStreamCnv::initialize() { diff --git a/TileCalorimeter/TileSvc/TileByteStream/src/TileL2ContByteStreamCnv.cxx b/TileCalorimeter/TileSvc/TileByteStream/src/TileL2ContByteStreamCnv.cxx index de99d00cdbe9dcba34c0cfdb75519e26dad7e356..388b26cb5ba275eb16210d68326a10b7587cc740 100644 --- a/TileCalorimeter/TileSvc/TileByteStream/src/TileL2ContByteStreamCnv.cxx +++ b/TileCalorimeter/TileSvc/TileByteStream/src/TileL2ContByteStreamCnv.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ // Gaudi includes @@ -60,7 +60,7 @@ void TileRecyclableL2Container::recycle() TileL2ContByteStreamCnv::TileL2ContByteStreamCnv(ISvcLocator* svcloc) - : Converter(ByteStream_StorageType, classID(), svcloc) + : Converter(storageType(), classID(), svcloc) , ::AthMessaging(msgSvc(), "TileL2ContByteStreamCnv") , m_name("TileL2ContByteStreamCnv") , m_tool("TileL2ContByteStreamTool") @@ -74,6 +74,7 @@ TileL2ContByteStreamCnv::TileL2ContByteStreamCnv(ISvcLocator* svcloc) const CLID& TileL2ContByteStreamCnv::classID(){ return ClassID_traits<TileL2Container>::ID(); } +long TileL2ContByteStreamCnv::storageType() { return ByteStreamAddress::storageType(); } StatusCode TileL2ContByteStreamCnv::initialize() { diff --git a/TileCalorimeter/TileSvc/TileByteStream/src/TileLaserObjByteStreamCnv.cxx b/TileCalorimeter/TileSvc/TileByteStream/src/TileLaserObjByteStreamCnv.cxx index 7a2b97fe265328b60a59fc717e635ce06af62ade..caed68285a7dcd220e4f75cd45c68f6e46d4d21b 100644 --- a/TileCalorimeter/TileSvc/TileByteStream/src/TileLaserObjByteStreamCnv.cxx +++ b/TileCalorimeter/TileSvc/TileByteStream/src/TileLaserObjByteStreamCnv.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ //author Renato Febbraro @@ -36,7 +36,7 @@ TileLaserObjByteStreamCnv::TileLaserObjByteStreamCnv(ISvcLocator* svcloc) - : Converter(ByteStream_StorageType, classID(), svcloc) + : Converter(storageType(), classID(), svcloc) , ::AthMessaging(msgSvc(), "TileLaserObjByteStreamCnv") , m_name("TileLaserObjByteStreamCnv") , m_robSvc("ROBDataProviderSvc", m_name) @@ -48,6 +48,7 @@ TileLaserObjByteStreamCnv::TileLaserObjByteStreamCnv(ISvcLocator* svcloc) const CLID& TileLaserObjByteStreamCnv::classID(){ return ClassID_traits<TileLaserObject>::ID();} +long TileLaserObjByteStreamCnv::storageType() { return ByteStreamAddress::storageType(); } StatusCode TileLaserObjByteStreamCnv::initialize() { diff --git a/TileCalorimeter/TileSvc/TileByteStream/src/TileMuRcvContByteStreamCnv.cxx b/TileCalorimeter/TileSvc/TileByteStream/src/TileMuRcvContByteStreamCnv.cxx index b03a78f8a53b1760ea95c82f807ae7691003ba55..0d850199349c7179bea89b2fb599d94baee56531 100644 --- a/TileCalorimeter/TileSvc/TileByteStream/src/TileMuRcvContByteStreamCnv.cxx +++ b/TileCalorimeter/TileSvc/TileByteStream/src/TileMuRcvContByteStreamCnv.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ // Gaudi includes @@ -32,7 +32,7 @@ TileMuRcvContByteStreamCnv::TileMuRcvContByteStreamCnv(ISvcLocator* svcloc) - : Converter(ByteStream_StorageType, classID(),svcloc) + : Converter(storageType(), classID(),svcloc) , ::AthMessaging(msgSvc(), "TileMuRcvContByteStreamCnv") , m_name("TileMuRcvContByteStreamCnv") , m_tool("TileMuRcvContByteStreamTool") @@ -45,7 +45,11 @@ TileMuRcvContByteStreamCnv::TileMuRcvContByteStreamCnv(ISvcLocator* svcloc) } const CLID& TileMuRcvContByteStreamCnv::classID(){ -return ClassID_traits<TileMuonReceiverContainer>::ID() ; + return ClassID_traits<TileMuonReceiverContainer>::ID(); +} + +long TileMuRcvContByteStreamCnv::storageType() { + return ByteStreamAddress::storageType(); } StatusCode TileMuRcvContByteStreamCnv::initialize() diff --git a/TileCalorimeter/TileSvc/TileByteStream/src/TileRawChannelContByteStreamCnv.cxx b/TileCalorimeter/TileSvc/TileByteStream/src/TileRawChannelContByteStreamCnv.cxx index 517090ed689b993b0d66a5057306b72c83288ba0..6c73fe1df1bf6c2919e6bf53c612614e64a29439 100644 --- a/TileCalorimeter/TileSvc/TileByteStream/src/TileRawChannelContByteStreamCnv.cxx +++ b/TileCalorimeter/TileSvc/TileByteStream/src/TileRawChannelContByteStreamCnv.cxx @@ -35,7 +35,7 @@ #include <stdint.h> TileRawChannelContByteStreamCnv::TileRawChannelContByteStreamCnv(ISvcLocator* svcloc) - : Converter(ByteStream_StorageType, classID(), svcloc) + : Converter(storageType(), classID(), svcloc) , ::AthMessaging(msgSvc(), "TileRawChannelContByteStreamCnv") , m_name("TileRawChannelContByteStreamCnv") , m_tool("TileRawChannelContByteStreamTool") @@ -49,6 +49,8 @@ TileRawChannelContByteStreamCnv::TileRawChannelContByteStreamCnv(ISvcLocator* sv const CLID& TileRawChannelContByteStreamCnv::classID() { return ClassID_traits<TileRawChannelContainer>::ID();} +long TileRawChannelContByteStreamCnv::storageType() { return ByteStreamAddress::storageType(); } + StatusCode TileRawChannelContByteStreamCnv::initialize() { ATH_MSG_DEBUG(" initialize "); diff --git a/Tools/PROCTools/python/RunTier0TestsTools.py b/Tools/PROCTools/python/RunTier0TestsTools.py index 080eabfc8e509fc360ccbb05f1ea4c16bfa17718..43ba199944d67ee3a05adbd2d38f5ef05f920716 100644 --- a/Tools/PROCTools/python/RunTier0TestsTools.py +++ b/Tools/PROCTools/python/RunTier0TestsTools.py @@ -24,5 +24,5 @@ ciRefFileMap = { 's3126-22.0' : 'v2', # OverlayTier0Test_required-test 'overlay-d1498-21.0' : 'v1', - 'overlay-d1498-22.0' : 'v4', + 'overlay-d1498-22.0' : 'v6', } diff --git a/Tracking/TrkExtrapolation/TrkExSolenoidalIntersector/TrkExSolenoidalIntersector/SolenoidParametrization.h b/Tracking/TrkExtrapolation/TrkExSolenoidalIntersector/TrkExSolenoidalIntersector/SolenoidParametrization.h index 67dd6513807147a43a6e6ff4b4840d6754c51750..8340f1a2016c8013dd129f1ca57de40150c757dd 100755 --- a/Tracking/TrkExtrapolation/TrkExSolenoidalIntersector/TrkExSolenoidalIntersector/SolenoidParametrization.h +++ b/Tracking/TrkExtrapolation/TrkExSolenoidalIntersector/TrkExSolenoidalIntersector/SolenoidParametrization.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ /*************************************************************************** @@ -33,44 +33,75 @@ class SolenoidParametrization { public: - // private constructors (as singleton) - ~SolenoidParametrization (void); + class BinParameters + { + public: + BinParameters (const double zAtAxis, const double cotTheta) + : m_cotTheta (cotTheta), m_zAtAxis (zAtAxis) {} + BinParameters (const double r, const double z, const double cotTheta); + double m_signTheta = 1; + double m_cotTheta = 0; + double m_zAtAxis = 0; + double m_interpolateZ = 0; + double m_complementZ = 0; + double m_interpolateTheta = 0; + double m_complementTheta = 0; + }; + class Parameters + : public BinParameters + { + public: + Parameters (const SolenoidParametrization& spar, + const double r, const double z, const double cotTheta); + double m_fieldAtOrigin; + double m_quadraticTerm; + double m_cubicTerm; + }; + + SolenoidParametrization (MagField::IMagFieldSvc* magFieldSvc); // configuration from Intersector + ~SolenoidParametrization() = default; // forbidden copy constructor // forbidden assignment operator - static SolenoidParametrization* instance (MagField::IMagFieldSvc* magFieldSvc); // initialize singleton - static void clearInstance(void); // clear (to be used before reinitialization) - - double centralField (void) const; - double fieldComponent (double) const; // parametrized - perp to track in rz-plane + double centralField() const; + double fieldComponent (double z, + const Parameters& parms) const; // parametrized - perp to track in rz-plane double fieldComponent (double r, double z, double cotTheta) const; // from MagFieldSvc - void fieldIntegrals (double&, double&, double, double); - bool hasParametrization (void) const; - double maximumR (void) const; // param valid to maximumR - double maximumZ (void) const; // param valid to maximumZ - void printFieldIntegrals (void) const; - void printParametersForEtaLine (double, double); - void printResidualForEtaLine (double, double); - void setParameters (double, double, double); // set line in rz-plane - bool validOrigin(Amg::Vector3D origin) const; // param valid for this origin? + void fieldIntegrals (double& firstIntegral, + double& secondIntegral, + double zBegin, + double zEnd, + Parameters& parms) const; + double maximumR() const; // param valid to maximumR + double maximumZ() const; // param valid to maximumZ + void printFieldIntegrals() const; + void printParametersForEtaLine(double eta, double z_origin) const; + void printResidualForEtaLine (double eta, double zOrigin) const; + bool validOrigin(const Amg::Vector3D& origin) const; // param valid for this origin? + + // OK to use this parametrization for CURRENT? + bool currentMatches (double current) const; private: - // implementation does not work without magnetic field service - // SolenoidParametrization (void); // singleton constructor - SolenoidParametrization (MagField::IMagFieldSvc* magFieldSvc); // configuration from Intersector - int fieldKey(void); - void integrate(double&, double&, double, double) const; - double interpolate(int, int, int, int) const; - void parametrizeSolenoid (void); - void setTerms(int); + friend class Parameters; + + static int fieldKey(BinParameters& parms); + void integrate(double& firstIntegral, + double& secondIntegral, + double zBegin, + double zEnd, + const Parameters& parms) const; + double interpolate(int key1, int key2, + int key3, int key4, + const Parameters& parms) const; + void parametrizeSolenoid(); + void setTerms(int, Parameters& parms) const; - static SolenoidParametrization* s_instance; static const double s_binInvSizeTheta; static const double s_binInvSizeZ; static const double s_binZeroTheta; static const double s_binZeroZ; - static double s_centralField; static const double s_lightSpeed; static const int s_maxBinTheta; static const int s_maxBinZ; @@ -81,60 +112,52 @@ private: static const double s_rOuter; static const double s_zInner; static const double s_zOuter; - static double s_parameters[14688]; - double m_complementTheta; - double m_complementZ; - double m_cotTheta; - double m_cubicTerm; - double m_fieldAtOrigin; - bool m_hasParametrization; - double m_interpolateTheta; - double m_interpolateZ; MagField::IMagFieldSvc* m_magFieldSvc; - double m_quadraticTerm; - double m_signTheta; - double m_zAtAxis; + double m_currentMin; + double m_currentMax; + double m_centralField; + double m_parameters[14688]; // copy, assignment: no semantics, no implementation - SolenoidParametrization (const SolenoidParametrization&); - SolenoidParametrization &operator= (const SolenoidParametrization&); + SolenoidParametrization (const SolenoidParametrization&) = delete; + SolenoidParametrization &operator= (const SolenoidParametrization&) = delete; }; //<<<<<< INLINE PRIVATE MEMBER FUNCTIONS >>>>>> inline int -SolenoidParametrization::fieldKey(void) +SolenoidParametrization::fieldKey(BinParameters& parms) { - double z = m_zAtAxis - s_binZeroZ; + double z = parms.m_zAtAxis - s_binZeroZ; int zBin = static_cast<int>(s_binInvSizeZ*z); - m_interpolateZ = z*s_binInvSizeZ - double(zBin); + parms.m_interpolateZ = z*s_binInvSizeZ - double(zBin); if (zBin < 0) { - m_interpolateZ = 0.; + parms.m_interpolateZ = 0.; zBin = 0; } else if (zBin > s_maxBinZ - 2) { - m_interpolateZ = 0.; + parms.m_interpolateZ = 0.; zBin = s_maxBinZ - 1; } - m_complementZ = 1. - m_interpolateZ; + parms.m_complementZ = 1. - parms.m_interpolateZ; - int thetaBin = static_cast<int>(s_binInvSizeTheta*m_cotTheta); - m_interpolateTheta = m_cotTheta*s_binInvSizeTheta - double(thetaBin); + int thetaBin = static_cast<int>(s_binInvSizeTheta*parms.m_cotTheta); + parms.m_interpolateTheta = parms.m_cotTheta*s_binInvSizeTheta - double(thetaBin); if (thetaBin > s_maxBinTheta - 3) { - m_interpolateTheta = 0.; + parms.m_interpolateTheta = 0.; thetaBin = s_maxBinTheta - 2; } - m_complementTheta = 1. - m_interpolateTheta; - // std::cout << " m_zAtAxis " << m_zAtAxis - // << " m_cotTheta " << m_cotTheta + parms.m_complementTheta = 1. - parms.m_interpolateTheta; + // std::cout << " zAtAxis " << zAtAxis + // << " cotTheta " << cotTheta // << " zBin " << zBin - // << " interpolateZ " << m_interpolateZ + // << " interpolateZ " << parms.m_interpolateZ // << " thetaBin " << thetaBin - // << " interpolateTheta " << m_interpolateTheta << std::endl; + // << " interpolateTheta " << parms.m_interpolateTheta << std::endl; return 2*s_numberParameters*(s_maxBinTheta*zBin + thetaBin); } @@ -143,7 +166,8 @@ inline void SolenoidParametrization::integrate(double& firstIntegral, double& secondIntegral, double zBegin, - double zEnd) const + double zEnd, + const Parameters& parms) const { double zDiff = zEnd - zBegin; double zBeg2 = zBegin*zBegin; @@ -152,29 +176,30 @@ SolenoidParametrization::integrate(double& firstIntegral, double zEnd3 = zEnd2*zEnd; double zDiff4 = 0.25*(zEnd2 + zBeg2)*(zEnd2 - zBeg2); - firstIntegral += m_fieldAtOrigin*zDiff + - m_quadraticTerm*(zEnd3 - zBeg3)*0.333333333333 + - m_cubicTerm*zDiff4; + firstIntegral += parms.m_fieldAtOrigin*zDiff + + parms.m_quadraticTerm*(zEnd3 - zBeg3)*0.333333333333 + + parms.m_cubicTerm*zDiff4; double zDiffInv = 1./zDiff; - secondIntegral += m_fieldAtOrigin*zDiff + - m_quadraticTerm*(zDiffInv*zDiff4 - zBeg3)*0.666666666667 + - m_cubicTerm*(0.1*zDiffInv*(zEnd2*zEnd3 - zBeg2*zBeg3) - 0.5*zBeg2*zBeg2); + secondIntegral += parms.m_fieldAtOrigin*zDiff + + parms.m_quadraticTerm*(zDiffInv*zDiff4 - zBeg3)*0.666666666667 + + parms.m_cubicTerm*(0.1*zDiffInv*(zEnd2*zEnd3 - zBeg2*zBeg3) - 0.5*zBeg2*zBeg2); } inline double SolenoidParametrization::interpolate(int key1, - int key2, - int key3, - int key4) const + int key2, + int key3, + int key4, + const Parameters& parms) const { - return ((s_parameters[key1]*m_complementZ + - s_parameters[key2]*m_interpolateZ)*m_complementTheta + - (s_parameters[key3]*m_complementZ + - s_parameters[key4]*m_interpolateZ)*m_interpolateTheta); + return ((m_parameters[key1]*parms.m_complementZ + + m_parameters[key2]*parms.m_interpolateZ)*parms.m_complementTheta + + (m_parameters[key3]*parms.m_complementZ + + m_parameters[key4]*parms.m_interpolateZ)*parms.m_interpolateTheta); } inline void -SolenoidParametrization::setTerms(int key1) +SolenoidParametrization::setTerms(int key1, Parameters& parms) const { int key2 = key1 + s_numberParameters; int key3 = key2 + s_numberParameters; @@ -182,52 +207,34 @@ SolenoidParametrization::setTerms(int key1) assert (key1 >= 0); assert (key4 < 14688); - assert (s_parameters[key1] != 0.); - assert (s_parameters[key3] != 0.); - if (m_cotTheta < 7.) + assert (m_parameters[key1] != 0.); + assert (m_parameters[key3] != 0.); + if (parms.m_cotTheta < 7.) { - assert (s_parameters[key2] != 0.); - assert (s_parameters[key4] != 0.); + assert (m_parameters[key2] != 0.); + assert (m_parameters[key4] != 0.); } - m_fieldAtOrigin = interpolate(key1++,key2++,key3++,key4++); - m_quadraticTerm = interpolate(key1++,key2++,key3++,key4++); - m_cubicTerm = interpolate(key1,key2,key3,key4); + parms.m_fieldAtOrigin = interpolate(key1++,key2++,key3++,key4++,parms); + parms.m_quadraticTerm = interpolate(key1++,key2++,key3++,key4++,parms); + parms.m_cubicTerm = interpolate(key1,key2,key3,key4,parms); } //<<<<<< INLINE PUBLIC MEMBER FUNCTIONS >>>>>> -// class does not work without magnetic field service -//inline SolenoidParametrization* -//SolenoidParametrization::instance() -//{ -// if (s_instance == 0) s_instance = new SolenoidParametrization(); -// return s_instance; -//} - -inline SolenoidParametrization* -SolenoidParametrization::instance(MagField::IMagFieldSvc* magFieldSvc) -{ - // this method is provided to configure the initialization. - // It should not be called more than once without an intervening clearInstance(). - assert (s_instance == 0); - s_instance = new SolenoidParametrization(magFieldSvc); - return s_instance; -} - inline double SolenoidParametrization::centralField (void) const -{ return s_centralField; } +{ return m_centralField; } inline double -SolenoidParametrization::fieldComponent (double z) const +SolenoidParametrization::fieldComponent (double z, const Parameters& parms) const { - double z_local = m_signTheta*z - m_zAtAxis; + double z_local = parms.m_signTheta*z - parms.m_zAtAxis; double z_squared = z_local*z_local; - double value = m_fieldAtOrigin + - m_quadraticTerm*z_squared + - m_cubicTerm*z_squared*z_local; + double value = parms.m_fieldAtOrigin + + parms.m_quadraticTerm*z_squared + + parms.m_cubicTerm*z_squared*z_local; return value; } @@ -244,32 +251,29 @@ inline void SolenoidParametrization::fieldIntegrals(double& firstIntegral, double& secondIntegral, double zBegin, - double zEnd) + double zEnd, + Parameters& parms) const { - zBegin = m_signTheta*zBegin; - zEnd = m_signTheta*zEnd; + zBegin = parms.m_signTheta*zBegin; + zEnd = parms.m_signTheta*zEnd; if (zEnd < s_zInner || zBegin > s_zInner) { - integrate(firstIntegral,secondIntegral,zBegin-m_zAtAxis,zEnd-m_zAtAxis); + integrate(firstIntegral,secondIntegral,zBegin-parms.m_zAtAxis,zEnd-parms.m_zAtAxis, parms); } else { - integrate(firstIntegral,secondIntegral,zBegin-m_zAtAxis,s_zInner); - int key = fieldKey() + s_numberParameters/2; - setTerms(key); - integrate(firstIntegral,secondIntegral,s_zInner,zEnd-m_zAtAxis); + integrate(firstIntegral,secondIntegral,zBegin-parms.m_zAtAxis,s_zInner, parms); + int key = fieldKey(parms) + s_numberParameters/2; + setTerms(key, parms); + integrate(firstIntegral,secondIntegral,s_zInner,zEnd-parms.m_zAtAxis,parms); } // std::cout << " zBegin < 0. " << zBegin // << " zEnd " << zEnd - // << " m_signTheta " << m_signTheta - // << " m_zAtAxis " << m_zAtAxis << std::endl; + // << " m_signTheta " << parms.m_signTheta + // << " m_zAtAxis " << parms.m_zAtAxis << std::endl; } -inline bool -SolenoidParametrization::hasParametrization (void) const -{ return m_hasParametrization; } - inline double SolenoidParametrization::maximumR (void) const { return s_rInner; } @@ -278,32 +282,8 @@ inline double SolenoidParametrization::maximumZ (void) const { return s_zInner; } -inline void -SolenoidParametrization::setParameters (double r, double z, double cotTheta) -{ - if (cotTheta > 0.) - { - m_signTheta = 1.; - m_cotTheta = cotTheta; - m_zAtAxis = z - r*cotTheta; - } - else - { - m_signTheta = -1.; - m_cotTheta = -cotTheta; - m_zAtAxis = r*cotTheta - z; - } - int key = fieldKey(); - if (r > s_rInner || m_signTheta*z > s_zInner) - { - key += s_numberParameters/2; - } -// cout << "r " << r << " key " << key << endl; - setTerms(key); -} - inline bool -SolenoidParametrization::validOrigin(Amg::Vector3D origin) const +SolenoidParametrization::validOrigin(const Amg::Vector3D& origin) const { return (origin.perp() < s_maximumImpactAtOrigin && std::abs(origin.z()) < s_maximumZatOrigin); } diff --git a/Tracking/TrkExtrapolation/TrkExSolenoidalIntersector/TrkExSolenoidalIntersector/SolenoidalIntersector.h b/Tracking/TrkExtrapolation/TrkExSolenoidalIntersector/TrkExSolenoidalIntersector/SolenoidalIntersector.h index 94224bcc98782982bade1151291f54e1f128c6d3..1ef2b7b75f8379f3ce80c7fc9609e8f5ee4193a0 100755 --- a/Tracking/TrkExtrapolation/TrkExSolenoidalIntersector/TrkExSolenoidalIntersector/SolenoidalIntersector.h +++ b/Tracking/TrkExtrapolation/TrkExSolenoidalIntersector/TrkExSolenoidalIntersector/SolenoidalIntersector.h @@ -2,282 +2,287 @@ Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ -/////////////////////////////////////////////////////////////////// -// SolenoidalIntersector.h, (c) ATLAS Detector software -/////////////////////////////////////////////////////////////////// - -#ifndef TRKEXSOLENOIDALINTERSECTOR_SOLENOIDALINTERSECTOR_H -#define TRKEXSOLENOIDALINTERSECTOR_SOLENOIDALINTERSECTOR_H - -#include <cmath> -#include "AthenaBaseComps/AthAlgTool.h" -#include "GaudiKernel/IIncidentListener.h" -#include "GaudiKernel/ServiceHandle.h" -#include "GaudiKernel/ToolHandle.h" -#include "GeoPrimitives/GeoPrimitives.h" -#include "MagFieldInterfaces/IMagFieldSvc.h" -#include "TrkExInterfaces/IIntersector.h" -#include "TrkExUtils/TrackSurfaceIntersection.h" -#include "TrkExSolenoidalIntersector/SolenoidParametrization.h" - -class IIncidentSvc; -namespace Trk -{ - -class SolenoidalIntersector: public AthAlgTool, - virtual public IIntersector, virtual public IIncidentListener -{ - -public: - SolenoidalIntersector (const std::string& type, - const std::string& name, - const IInterface* parent); - ~SolenoidalIntersector (void); // destructor - - StatusCode initialize(); - StatusCode finalize(); - - /** handle for incident service */ - void handle(const Incident& inc) ; - - /**IIntersector interface method for general Surface type */ - const TrackSurfaceIntersection* intersectSurface(const Surface& surface, - const TrackSurfaceIntersection* trackTrackSurfaceIntersection, - const double qOverP); - - /**IIntersector interface method for specific Surface type : PerigeeSurface */ - const TrackSurfaceIntersection* approachPerigeeSurface(const PerigeeSurface& surface, - const TrackSurfaceIntersection* trackTrackSurfaceIntersection, - const double qOverP); - - /**IIntersector interface method for specific Surface type : StraightLineSurface */ - const TrackSurfaceIntersection* approachStraightLineSurface(const StraightLineSurface& surface, - const TrackSurfaceIntersection* trackTrackSurfaceIntersection, - const double qOverP); - - /**IIntersector interface method for specific Surface type : CylinderSurface */ - const TrackSurfaceIntersection* intersectCylinderSurface (const CylinderSurface& surface, - const TrackSurfaceIntersection* trackTrackSurfaceIntersection, - const double qOverP); - - /**IIntersector interface method for specific Surface type : DiscSurface */ - const TrackSurfaceIntersection* intersectDiscSurface (const DiscSurface& surface, - const TrackSurfaceIntersection* trackTrackSurfaceIntersection, - const double qOverP); - - /**IIntersector interface method for specific Surface type : PlaneSurface */ - const TrackSurfaceIntersection* intersectPlaneSurface(const PlaneSurface& surface, - const TrackSurfaceIntersection* trackTrackSurfaceIntersection, - const double qOverP); - - /**IIntersector interface method to check validity of parametrization within extrapolation range */ - bool isValid (Amg::Vector3D startPosition, - Amg::Vector3D endPosition) const; - - /** tabulate parametrization details */ - void validationAction() const; - -private: - double circularArcLength(double, double, double, double, double, - double, double&, double&); - double linearArcLength(double); - bool extrapolateToR(double endRadius); - bool extrapolateToZ(double endZ); - const TrackSurfaceIntersection* intersection(const Surface& surface); - void setParameters(const TrackSurfaceIntersection* intersection, - double qOverP); - - // services and tools: - ServiceHandle<IIncidentSvc> m_incidentSvc; //!< IncidentSvc to catch begin of event - ServiceHandle<MagField::IMagFieldSvc> m_magFieldSvc; - ToolHandle<IIntersector> m_rungeKuttaIntersector; - - double m_cotTheta; - float m_currentMax; - float m_currentMin; - double m_deltaPhiTolerance; - Amg::Vector3D m_direction; - unsigned m_intersectionNumber; - double m_oneOverSinTheta; - double m_pathLength; - Amg::Vector3D m_position; - double m_qOverP; - double m_qOverPt; - double m_radius; - double m_sinTheta; - SolenoidParametrization* m_solenoidParametrization; - double m_surfaceTolerance; - double m_validRadius; - double m_validZ; - - // counters - unsigned long long m_countExtrapolations; - unsigned long long m_countRKSwitches; - -}; - - -// arc length to intersect of 2 circles: circular track and circle at (0,0) with radius endRadius -inline double -SolenoidalIntersector::circularArcLength(double endRadius, - double radiusOfCurvature, - double xCentre, - double yCentre, - double cosPhi, - double sinPhi, - double& cosPhiIntersect, - double& sinPhiIntersect) -{ - int trapped = 0; - double radiusSquared = xCentre*xCentre + yCentre*yCentre; - double term = 0.5*(radiusSquared + - radiusOfCurvature*radiusOfCurvature - - endRadius*endRadius)/(radiusSquared*radiusOfCurvature); - if (std::abs(xCentre) < std::abs(yCentre)) - { - double dx2 = yCentre*yCentre * (1./(radiusSquared*term*term) - 1.); - if (dx2 < 0.) - { - trapped = 1; - } - else - { - if (yCentre*term > 0.) - { - sinPhiIntersect = term*(-xCentre+std::sqrt(dx2)); - } - else - { - sinPhiIntersect = term*(-xCentre-std::sqrt(dx2)); - } - cosPhiIntersect = (sinPhiIntersect*xCentre + radiusSquared*term)/yCentre; - } - } - else - { - double dy2 = xCentre*xCentre * (1./(radiusSquared*term*term) - 1.); - if (dy2 < 0.) - { - trapped = 1; - } - else - { - if (xCentre*term > 0.) - { - cosPhiIntersect = term*(yCentre+std::sqrt(dy2)); - } - else - { - cosPhiIntersect = term*(yCentre-std::sqrt(dy2)); - } - sinPhiIntersect = (cosPhiIntersect*yCentre - radiusSquared*term)/xCentre; - } - } - if (trapped == 0) - { - double deltaPhi; - double sinDeltaPhi = sinPhiIntersect*cosPhi - cosPhiIntersect*sinPhi; - if (std::abs(sinDeltaPhi) > 0.1) - { - deltaPhi = asin(sinDeltaPhi); - } - else - { - deltaPhi = sinDeltaPhi*(1. + 0.166667*sinDeltaPhi*sinDeltaPhi); - } - return (radiusOfCurvature*deltaPhi); - } - else - { - cosPhiIntersect = cosPhi; - sinPhiIntersect = sinPhi; - return 0.; - } -} - -// arc length to intersect of a line to a circle of radius endRadius centred at (0,0) -// +ve (-ve) endRadius selects the solution on the same (opposite) side of (0,0) -inline double -SolenoidalIntersector::linearArcLength(double endRadius) -{ - double arcLength = (-m_direction.x()*m_position.x() - m_direction.y()*m_position.y()) * - m_oneOverSinTheta; - double radiusSquared = endRadius*endRadius - m_radius*m_radius + arcLength*arcLength; - if (radiusSquared > 0.) - { - if (endRadius > 0.) - { - arcLength += std::sqrt(radiusSquared); - } - else - { - arcLength -= std::sqrt(radiusSquared); - } - } - return arcLength; -} - -inline const TrackSurfaceIntersection* -SolenoidalIntersector::intersection(const Surface& surface) -{ - Intersection SLIntersect = surface.straightLineIntersection(m_position, m_direction, false, false); - if (! SLIntersect.valid) return 0; - - const TrackSurfaceIntersection* intersection = new TrackSurfaceIntersection(SLIntersect.position, - m_direction, - m_pathLength); - // // validate - // if (! intersection) - // { - // ATH_MSG_WARNING(" this should never fail"); - // return 0; - // } - - // const Amg::Vector2D* localPos = surface.positionOnSurface(intersection->position(), false); - // if (! localPos) - // { - // ATH_MSG_INFO(" localPos fails surface type " << surface.type() - // << " at R,Z " << m_position.perp() << ", " << m_position.z() - // << " surface R " << surface.globalReferencePoint().perp()); - // return 0; - // } - - - // ATH_MSG_INFO(" serial diff " << intersection->serialNumber() - m_intersectionNumber - // << " at R,Z: " << m_radius << ", " << m_position.z()); - - m_intersectionNumber = intersection->serialNumber(); - return intersection; -} - -inline void -SolenoidalIntersector::setParameters(const TrackSurfaceIntersection* trackTrackSurfaceIntersection, double qOverP) -{ - if (trackTrackSurfaceIntersection->serialNumber() != m_intersectionNumber || qOverP != m_qOverP) - { - // ATH_MSG_INFO(" initialize parameters. Diff: " << trackTrackSurfaceIntersection->serialNumber()-m_intersectionNumber - // << " at R,Z: " << trackTrackSurfaceIntersection->position().perp() << ", " << trackTrackSurfaceIntersection->position().z()); - ++m_countExtrapolations; - m_position.x() = trackTrackSurfaceIntersection->position().x(); - m_position.y() = trackTrackSurfaceIntersection->position().y(); - m_position.z() = trackTrackSurfaceIntersection->position().z(); - m_radius = m_position.perp(); - m_direction.x() = trackTrackSurfaceIntersection->direction().x(); - m_direction.y() = trackTrackSurfaceIntersection->direction().y(); - m_direction.z() = trackTrackSurfaceIntersection->direction().z(); - m_sinTheta = m_direction.perp(); - m_oneOverSinTheta = 1./m_sinTheta; - m_cotTheta = m_direction.z() * m_oneOverSinTheta; - m_pathLength = trackTrackSurfaceIntersection->pathlength(); - m_qOverP = qOverP; - m_qOverPt = qOverP * m_oneOverSinTheta; - m_solenoidParametrization->setParameters(m_radius,m_position.z(),m_cotTheta); - } -} - -} // end of namespace - - -#endif // TRKEXSOLENOIDALINTERSECTOR_SOLENOIDALINTERSECTOR_H - - +/////////////////////////////////////////////////////////////////// +// SolenoidalIntersector.h, (c) ATLAS Detector software +/////////////////////////////////////////////////////////////////// + +#ifndef TRKEXSOLENOIDALINTERSECTOR_SOLENOIDALINTERSECTOR_H +#define TRKEXSOLENOIDALINTERSECTOR_SOLENOIDALINTERSECTOR_H + +#include "AthenaBaseComps/AthAlgTool.h" +#include "GaudiKernel/ServiceHandle.h" +#include "GaudiKernel/ToolHandle.h" +#include "GaudiKernel/ContextSpecificPtr.h" +#include "GeoPrimitives/GeoPrimitives.h" +#include "MagFieldInterfaces/IMagFieldSvc.h" +#include "TrkExInterfaces/IIntersector.h" +#include "TrkExUtils/TrackSurfaceIntersection.h" +#include "TrkExSolenoidalIntersector/SolenoidParametrization.h" +#include "CxxUtils/checker_macros.h" +#include <mutex> +#include <cmath> + +class IIncidentSvc; +namespace Trk +{ + +class SolenoidalIntersector: public extends<AthAlgTool, IIntersector> +{ + +public: + /** + * @brief Constants of motion and other cached values. + * + * There is some data we want to persist across calls to intersectSurface() + * for a single trajectory. We do this by attaching this structure + * as a cache block to TrackSurfaceIntersection. Some of these are + * actually constants of motion for a helical trajectory. We also + * include here the solenoidal parametrization. This gets updated + * as we step through the field; including it here avoids a reevaluation + * at the start of the next call. We also include the position at the + * end of the stepping phase, m_lastPosition. This is because before + * after we finish stepping but before we return, we improve the + * estimate of the intersection by calculating the straight line + * intersection with the surface. But if we then calcuate a further + * intersection with the same trajectory, we want to start at the + * point at the end of the previous stepping, not the position + * we returned. + */ + struct Constants + : public TrackSurfaceIntersection::IIntersectionCache + { + Constants (const SolenoidParametrization& solpar, + const TrackSurfaceIntersection& trackTrackSurfaceIntersection, + const double qOverP); + virtual std::unique_ptr<IIntersectionCache> clone() const override + { return std::make_unique<Constants> (*this); } + + double m_sinTheta; + double m_oneOverSinTheta; + double m_cotTheta; + double m_qOverPt; + const SolenoidParametrization& m_solPar; + Amg::Vector3D m_lastPosition; + SolenoidParametrization::Parameters m_solParams; + }; + SolenoidalIntersector (const std::string& type, + const std::string& name, + const IInterface* parent); + ~SolenoidalIntersector (void); // destructor + + StatusCode initialize(); + StatusCode finalize(); + + /**IIntersector interface method for general Surface type */ + const TrackSurfaceIntersection* intersectSurface(const Surface& surface, + const TrackSurfaceIntersection* trackTrackSurfaceIntersection, + const double qOverP); + + /**IIntersector interface method for specific Surface type : PerigeeSurface */ + const TrackSurfaceIntersection* approachPerigeeSurface(const PerigeeSurface& surface, + const TrackSurfaceIntersection* trackTrackSurfaceIntersection, + const double qOverP); + + /**IIntersector interface method for specific Surface type : StraightLineSurface */ + const TrackSurfaceIntersection* approachStraightLineSurface(const StraightLineSurface& surface, + const TrackSurfaceIntersection* trackTrackSurfaceIntersection, + const double qOverP); + + /**IIntersector interface method for specific Surface type : CylinderSurface */ + const TrackSurfaceIntersection* intersectCylinderSurface (const CylinderSurface& surface, + const TrackSurfaceIntersection* trackTrackSurfaceIntersection, + const double qOverP); + + /**IIntersector interface method for specific Surface type : DiscSurface */ + const TrackSurfaceIntersection* intersectDiscSurface (const DiscSurface& surface, + const TrackSurfaceIntersection* trackTrackSurfaceIntersection, + const double qOverP); + + /**IIntersector interface method for specific Surface type : PlaneSurface */ + const TrackSurfaceIntersection* intersectPlaneSurface(const PlaneSurface& surface, + const TrackSurfaceIntersection* trackTrackSurfaceIntersection, + const double qOverP); + + /**IIntersector interface method to check validity of parametrization within extrapolation range */ + bool isValid (Amg::Vector3D startPosition, + Amg::Vector3D endPosition) const; + + /** tabulate parametrization details */ + void validationAction() const; + +private: + const SolenoidParametrization* getSolenoidParametrization() const; + + double circularArcLength(double, double, double, double, double, + double, double&, double&) const; + double linearArcLength(const TrackSurfaceIntersection& isect, + const Constants& com, + const double radius2, + const double endRadius) const; + bool extrapolateToR(TrackSurfaceIntersection& isect, + double& radius2, + Constants& com, + const double endRadius) const; + bool extrapolateToZ(TrackSurfaceIntersection& isect, + Constants& com, + const double endZ) const; + const TrackSurfaceIntersection* intersection(std::unique_ptr<TrackSurfaceIntersection> isect, + Constants& com, + const Surface& surface) const; + + std::unique_ptr<TrackSurfaceIntersection> + newIntersection (const TrackSurfaceIntersection& oldIsect, + const SolenoidParametrization& solpar, + const double qOverP, + Constants*& com) const; + + ServiceHandle<MagField::IMagFieldSvc> m_magFieldSvc; + ToolHandle<IIntersector> m_rungeKuttaIntersector; + + double m_deltaPhiTolerance; + double m_surfaceTolerance; + + // counters + mutable std::atomic<unsigned long long> m_countExtrapolations; + mutable std::atomic<unsigned long long> m_countRKSwitches; + + mutable std::mutex m_mutex; + mutable Gaudi::Hive::ContextSpecificPtr<const SolenoidParametrization> m_lastSolenoidParametrization ATLAS_THREAD_SAFE; + // List of active solenoid parametrizations. Second element of the pair + // is a use count. + typedef std::list<std::pair<SolenoidParametrization, int> > Parmlist_t; + mutable Parmlist_t m_solenoidParametrizations ATLAS_THREAD_SAFE; +}; + + +// arc length to intersect of 2 circles: circular track and circle at (0,0) with radius endRadius +inline double +SolenoidalIntersector::circularArcLength(double endRadius, + double radiusOfCurvature, + double xCentre, + double yCentre, + double cosPhi, + double sinPhi, + double& cosPhiIntersect, + double& sinPhiIntersect) const +{ + int trapped = 0; + double radiusSquared = xCentre*xCentre + yCentre*yCentre; + double term = 0.5*(radiusSquared + + radiusOfCurvature*radiusOfCurvature - + endRadius*endRadius)/(radiusSquared*radiusOfCurvature); + if (std::abs(xCentre) < std::abs(yCentre)) + { + double dx2 = yCentre*yCentre * (1./(radiusSquared*term*term) - 1.); + if (dx2 < 0.) + { + trapped = 1; + } + else + { + if (yCentre*term > 0.) + { + sinPhiIntersect = term*(-xCentre+std::sqrt(dx2)); + } + else + { + sinPhiIntersect = term*(-xCentre-std::sqrt(dx2)); + } + cosPhiIntersect = (sinPhiIntersect*xCentre + radiusSquared*term)/yCentre; + } + } + else + { + double dy2 = xCentre*xCentre * (1./(radiusSquared*term*term) - 1.); + if (dy2 < 0.) + { + trapped = 1; + } + else + { + if (xCentre*term > 0.) + { + cosPhiIntersect = term*(yCentre+std::sqrt(dy2)); + } + else + { + cosPhiIntersect = term*(yCentre-std::sqrt(dy2)); + } + sinPhiIntersect = (cosPhiIntersect*yCentre - radiusSquared*term)/xCentre; + } + } + if (trapped == 0) + { + double deltaPhi; + double sinDeltaPhi = sinPhiIntersect*cosPhi - cosPhiIntersect*sinPhi; + if (std::abs(sinDeltaPhi) > 0.1) + { + deltaPhi = asin(sinDeltaPhi); + } + else + { + deltaPhi = sinDeltaPhi*(1. + 0.166667*sinDeltaPhi*sinDeltaPhi); + } + return (radiusOfCurvature*deltaPhi); + } + else + { + cosPhiIntersect = cosPhi; + sinPhiIntersect = sinPhi; + return 0.; + } +} + +// arc length to intersect of a line to a circle of radius endRadius centred at (0,0) +// +ve (-ve) endRadius selects the solution on the same (opposite) side of (0,0) +inline double +SolenoidalIntersector::linearArcLength(const TrackSurfaceIntersection& isect, + const Constants& com, + const double radius2, + const double endRadius) const +{ + const Amg::Vector3D& pos = isect.position(); + const Amg::Vector3D& dir = isect.direction(); + + double arcLength = (-dir.x()*pos.x() - dir.y()*pos.y()) * + com.m_oneOverSinTheta; + double radiusSquared = endRadius*endRadius - radius2 + arcLength*arcLength; + if (radiusSquared > 0.) + { + if (endRadius > 0.) + { + arcLength += std::sqrt(radiusSquared); + } + else + { + arcLength -= std::sqrt(radiusSquared); + } + } + return arcLength; +} + +inline const TrackSurfaceIntersection* +SolenoidalIntersector::intersection(std::unique_ptr<TrackSurfaceIntersection> isect, + Constants& com, + const Surface& surface) const +{ + // Improve the estimate of the intersection by calculating + // the straight-line intersection. + Intersection SLIntersect = surface.straightLineIntersection(isect->position(), isect->direction(), false, false); + if (SLIntersect.valid) + { + // But first save our current position, so that we can + // start from here on the next call. + com.m_lastPosition = isect->position(); + isect->position() = SLIntersect.position; + return isect.release(); + } + + return nullptr; +} + +} // end of namespace + + +#endif // TRKEXSOLENOIDALINTERSECTOR_SOLENOIDALINTERSECTOR_H + diff --git a/Tracking/TrkExtrapolation/TrkExSolenoidalIntersector/share/SolenoidalIntersector_test.ref b/Tracking/TrkExtrapolation/TrkExSolenoidalIntersector/share/SolenoidalIntersector_test.ref index ed9b945fd7666d51c4696af3ae0592c981a261cb..e22da5001735f61591b92f6c498f47418c906d1c 100644 --- a/Tracking/TrkExtrapolation/TrkExSolenoidalIntersector/share/SolenoidalIntersector_test.ref +++ b/Tracking/TrkExtrapolation/TrkExSolenoidalIntersector/share/SolenoidalIntersector_test.ref @@ -10,7 +10,7 @@ JobOptionsSvc INFO Job options successfully read in from ../share/Solenoi ApplicationMgr SUCCESS ==================================================================================================================================== Welcome to ApplicationMgr (GaudiCoreSvc v27r1p99) - running on karma on Tue Jan 29 12:11:05 2019 + running on karma on Sun Feb 3 21:41:27 2019 ==================================================================================================================================== ApplicationMgr INFO Application Manager Configured successfully AtlasFieldSvc INFO initialize() ... @@ -34,9 +34,8 @@ AtlasFieldSvc INFO Initialized the field map from /home/sss/nobackup/atla AtlasFieldSvc INFO Currents imported and map initialized AtlasFieldSvc INFO BeginRun incident handled AtlasFieldSvc INFO incidents handled successfully - SolenoidParametrization: centralField 2T - please be patient while the solenoid is parametrised !! -ToolSvc.Trk::So... INFO SolenoidParametrization current: 7730 valid radius,Z : 570, 2150 test_plane + SolenoidParametrization: centralField 2T - please be patient while the solenoid is parametrised !! test_line test_cylinder test_disc diff --git a/Tracking/TrkExtrapolation/TrkExSolenoidalIntersector/src/SolenoidParametrization.cxx b/Tracking/TrkExtrapolation/TrkExSolenoidalIntersector/src/SolenoidParametrization.cxx index 21236565d5b8b139c0d055b0afb51cdfeed15012..3dc8e769667d14ca16f5b9fadfd3160c09d83289 100755 --- a/Tracking/TrkExtrapolation/TrkExSolenoidalIntersector/src/SolenoidParametrization.cxx +++ b/Tracking/TrkExtrapolation/TrkExSolenoidalIntersector/src/SolenoidParametrization.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2017, 2019 CERN for the benefit of the ATLAS collaboration */ /*************************************************************************** @@ -46,8 +46,6 @@ const double SolenoidParametrization::s_binInvSizeTheta = 1./0.1; const double SolenoidParametrization::s_binInvSizeZ = 1./20.*Gaudi::Units::mm; const double SolenoidParametrization::s_binZeroTheta = 0.; const double SolenoidParametrization::s_binZeroZ = -160.*Gaudi::Units::mm; -double SolenoidParametrization::s_centralField = 0.; -SolenoidParametrization* SolenoidParametrization::s_instance = 0; const double SolenoidParametrization::s_lightSpeed = -1.*299792458*Gaudi::Units::m/Gaudi::Units::s; const int SolenoidParametrization::s_maxBinTheta = 72; const int SolenoidParametrization::s_maxBinZ = 17; @@ -58,38 +56,74 @@ const double SolenoidParametrization::s_rInner = 570.*Gaudi::Units::mm; const double SolenoidParametrization::s_rOuter = 1050.*Gaudi::Units::mm; const double SolenoidParametrization::s_zInner = 2150.0*Gaudi::Units::mm; // just after wheel #7 const double SolenoidParametrization::s_zOuter = 2800.0*Gaudi::Units::mm; // just after wheel #9 -double SolenoidParametrization::s_parameters[] = {14688*0.}; + + +SolenoidParametrization::BinParameters::BinParameters (const double r, + const double z, + const double cotTheta) +{ + if (cotTheta > 0) { + m_signTheta = 1; + m_cotTheta = cotTheta; + m_zAtAxis = z - r*cotTheta; + } + else { + m_signTheta = -1; + m_cotTheta = -cotTheta; + m_zAtAxis = r*cotTheta - z; + } +} + + +SolenoidParametrization::Parameters::Parameters (const SolenoidParametrization& spar, + const double r, + const double z, + const double cotTheta) + : BinParameters (r, z, cotTheta) +{ + int key = fieldKey(*this); + if (r > s_rInner || m_signTheta*z > s_zInner) + { + key += s_numberParameters/2; + } + spar.setTerms (key, *this); +} + //<<<<<< CLASS STRUCTURE INITIALIZATION >>>>>> // note: both constructors are private // SolenoidParametrization::SolenoidParametrization(void) -// : m_hasParametrization (false) // { // // field component not defined without a m_magFieldSvc // // get central field value in units required for fast tracking -// s_centralField = fieldComponent(0.,0.,0.); +// m_centralField = fieldComponent(0.,0.,0.); // // // note field = B*c // RestoreIOSFlags restore(std::cout); // std::cout << " SolenoidParametrization: centralField " -// << std::setw(6) << std::setprecision(3) << s_centralField/s_lightSpeed /Gaudi::Units::tesla +// << std::setw(6) << std::setprecision(3) << m_centralField/s_lightSpeed /Gaudi::Units::tesla // << "T" << std::endl; //} SolenoidParametrization::SolenoidParametrization(MagField::IMagFieldSvc* magFieldSvc) - : m_hasParametrization (false), - m_magFieldSvc (magFieldSvc) + : m_magFieldSvc (magFieldSvc), + m_parameters () { - // get central field value in units required for fast tracking (i.e. field = B*c) + // allow 0.1% fluctuation in current. + double current = magFieldSvc->solenoidCurrent(); + m_currentMax = 1.001*current; + m_currentMin = 0.999*current; + + // get central field value in units required for fast tracking (i.e. field = B*c) if (!m_magFieldSvc) throw std::logic_error("fieldComponent not defined without magnetic field service."); - s_centralField = fieldComponent(0.,0.,0.); + m_centralField = fieldComponent(0.,0.,0.); RestoreIOSFlags restore(std::cout); std::cout << " SolenoidParametrization: centralField " - << std::setw(6) << std::setprecision(3) << s_centralField/s_lightSpeed /Gaudi::Units::tesla + << std::setw(6) << std::setprecision(3) << m_centralField/s_lightSpeed /Gaudi::Units::tesla << "T"; - + // now parametrise field - if requested //if (magFieldSvc) { @@ -104,31 +138,28 @@ SolenoidParametrization::SolenoidParametrization(MagField::IMagFieldSvc* magFiel void SolenoidParametrization::parametrizeSolenoid(void) { - m_hasParametrization = true; - // set parametrisation granularity (up to cotTheta = 7.) // get value of cubic term for approx: Bz = Bcentral*(1 - term * z^3) // 'fit' to average over cotTheta lines - m_signTheta = 1.; double smallOffset = 0.0000000000001; // avoid FPE - m_zAtAxis = s_binZeroZ; // + smallOffset ? + double zAtAxis = s_binZeroZ; // + smallOffset ? for (int binZ = 0; binZ < s_maxBinZ; ++binZ) { - m_cotTheta = smallOffset; + double cotTheta = smallOffset; for (int binTheta = 0; binTheta < s_maxBinTheta - 1; ++binTheta) { double r = 0.; - double z = m_zAtAxis; + double z = zAtAxis; int n = 200; double dr; - if (m_cotTheta < s_zOuter/s_rOuter) + if (cotTheta < s_zOuter/s_rOuter) { dr = s_rOuter/double(n); } else { - dr = s_zOuter/(m_cotTheta*double(n)); + dr = s_zOuter/(cotTheta*double(n)); } Amg::VectorX difference(n); @@ -136,9 +167,9 @@ SolenoidParametrization::parametrizeSolenoid(void) for (int k = 0; k < n; ++k) { r += dr; - z += dr*m_cotTheta; + z += dr*cotTheta; double w = (n - k)*(n - k); - double zLocal = z - m_zAtAxis; + double zLocal = z - zAtAxis; if (r > s_rInner || z > s_zInner) { // derivative(k,0) = 0.; @@ -157,31 +188,32 @@ SolenoidParametrization::parametrizeSolenoid(void) // derivative(k,4) = 0.; // derivative(k,5) = 0.; } - difference(k) = w*(fieldComponent(r,z,m_cotTheta) - s_centralField); + difference(k) = w*(fieldComponent(r,z,cotTheta) - m_centralField); } // solve for parametrization coefficients Amg::VectorX solution = derivative.colPivHouseholderQr().solve(difference); + BinParameters parms (zAtAxis, cotTheta); - int key = fieldKey(); - assert (s_parameters[key] == 0.); - s_parameters[key++] = s_centralField + solution(0); - s_parameters[key++] = solution(1); - s_parameters[key++] = solution(2); - s_parameters[key++] = s_centralField + solution(3); - s_parameters[key++] = solution(4); - s_parameters[key++] = solution(5); + int key = fieldKey(parms); + assert (m_parameters[key] == 0.); + m_parameters[key++] = m_centralField + solution(0); + m_parameters[key++] = solution(1); + m_parameters[key++] = solution(2); + m_parameters[key++] = m_centralField + solution(3); + m_parameters[key++] = solution(4); + m_parameters[key++] = solution(5); // duplicate last z-bin for contiguous neighbour lookup if (binZ == s_maxBinZ - 1) { - assert (s_parameters[key] == 0.); - s_parameters[key++] = s_centralField + solution(0); - s_parameters[key++] = solution(1); - s_parameters[key++] = solution(2); - s_parameters[key++] = s_centralField + solution(3); - s_parameters[key++] = solution(4); - s_parameters[key++] = solution(5); + assert (m_parameters[key] == 0.); + m_parameters[key++] = m_centralField + solution(0); + m_parameters[key++] = solution(1); + m_parameters[key++] = solution(2); + m_parameters[key++] = m_centralField + solution(3); + m_parameters[key++] = solution(4); + m_parameters[key++] = solution(5); key -= s_numberParameters; } @@ -189,13 +221,13 @@ SolenoidParametrization::parametrizeSolenoid(void) if (binZ > 0) { key -= 2*s_numberParameters*s_maxBinTheta; - assert (s_parameters[key] == 0.); - s_parameters[key++] = s_centralField + solution(0); - s_parameters[key++] = solution(1); - s_parameters[key++] = solution(2); - s_parameters[key++] = s_centralField + solution(3); - s_parameters[key++] = solution(4); - s_parameters[key++] = solution(5); + assert (m_parameters[key] == 0.); + m_parameters[key++] = m_centralField + solution(0); + m_parameters[key++] = solution(1); + m_parameters[key++] = solution(2); + m_parameters[key++] = m_centralField + solution(3); + m_parameters[key++] = solution(4); + m_parameters[key++] = solution(5); } // some debug print @@ -204,66 +236,54 @@ SolenoidParametrization::parametrizeSolenoid(void) // || key >= s_numberParameters*s_maxBinTheta*(s_maxBinZ - 2)) // { // double z_max; -// if (m_cotTheta < s_zInner/s_rInner) +// if (cotTheta < s_zInner/s_rInner) // { -// z_max = s_rInner*m_cotTheta + m_zAtAxis; +// z_max = s_rInner*cotTheta + zAtAxis; // } // else // { // z_max = s_zInner; // } // cout << std::setiosflags(std::ios::fixed) << key -// << " cotTheta " << std::setw(7) << std::setprecision(2) << m_cotTheta +// << " cotTheta " << std::setw(7) << std::setprecision(2) << cotTheta // << " inner terms: z0 "<< std::setw(6) << std::setprecision(3) -// << s_parameters[key]/s_centralField +// << m_parameters[key]/m_centralField // << " z^2 "<< std::setw(6) << std::setprecision(3) -// << s_parameters[key+1]*z_max*z_max/s_centralField +// << m_parameters[key+1]*z_max*z_max/m_centralField // << " z^3 " << std::setw(6) << std::setprecision(3) -// << s_parameters[key+2]*z_max*z_max*z_max/s_centralField +// << m_parameters[key+2]*z_max*z_max*z_max/m_centralField // << " outer terms: z0 "<< std::setw(6) << std::setprecision(3) -// << s_parameters[key+3]/s_centralField +// << m_parameters[key+3]/m_centralField // << " z^2 "<< std::setw(6) << std::setprecision(3) -// << s_parameters[key+4]*z_max*z_max/s_centralField +// << m_parameters[key+4]*z_max*z_max/m_centralField // << " z^3 " << std::setw(6) << std::setprecision(3) -// << s_parameters[key+5]*z_max*z_max*z_max/s_centralField +// << m_parameters[key+5]*z_max*z_max*z_max/m_centralField // << std::resetiosflags(std::ios::fixed) << endl; // } - m_cotTheta += 1./s_binInvSizeTheta; + cotTheta += 1./s_binInvSizeTheta; } - m_zAtAxis += 1./s_binInvSizeZ; + zAtAxis += 1./s_binInvSizeZ; } // duplicate end theta-bins for contiguous neighbour lookup - m_zAtAxis = s_binZeroZ; // + smallOffset ?? + zAtAxis = s_binZeroZ; // + smallOffset ?? for (int binZ = 0; binZ < s_maxBinZ; ++binZ) { - m_cotTheta = double(s_maxBinTheta)/s_binInvSizeTheta; - int key = fieldKey(); + double cotTheta = double(s_maxBinTheta)/s_binInvSizeTheta; + BinParameters parms (zAtAxis, cotTheta); + int key = fieldKey(parms); for (int k = 0; k < 2*s_numberParameters; ++k) { - assert (s_parameters[key+2*s_numberParameters] == 0.); - s_parameters[key+2*s_numberParameters] = s_parameters[key]; + assert (m_parameters[key+2*s_numberParameters] == 0.); + m_parameters[key+2*s_numberParameters] = m_parameters[key]; ++key; } - m_zAtAxis += 1./s_binInvSizeZ; + zAtAxis += 1./s_binInvSizeZ; } } //<<<<<< PUBLIC MEMBER FUNCTION DEFINITIONS >>>>>> -SolenoidParametrization::~SolenoidParametrization() -{} - -void -SolenoidParametrization::clearInstance(void) -{ - delete s_instance; - s_instance = 0; - std::fill (s_parameters, - s_parameters + sizeof(s_parameters)/sizeof(s_parameters[0]), - 0); -} - void SolenoidParametrization::printFieldIntegrals (void) const { @@ -392,16 +412,15 @@ SolenoidParametrization::printFieldIntegrals (void) const } void -SolenoidParametrization::printParametersForEtaLine (double eta, double z_origin) +SolenoidParametrization::printParametersForEtaLine (double eta, double z_origin) const { - m_signTheta = 1.; - m_zAtAxis = z_origin; - m_cotTheta = 1./std::tan(2.*std::atan(1./std::exp(eta))); - int key = fieldKey(); + double cotTheta = 1./std::tan(2.*std::atan(1./std::exp(eta))); + BinParameters parms (z_origin, cotTheta); + int key = fieldKey(parms); double z_max; - if (m_cotTheta < s_zInner/s_rInner) + if (cotTheta < s_zInner/s_rInner) { - z_max = s_rInner*m_cotTheta; + z_max = s_rInner*cotTheta; } else { @@ -411,25 +430,23 @@ SolenoidParametrization::printParametersForEtaLine (double eta, double z_origin) << "SolenoidParametrization: line with eta " << std::setw(6) << std::setprecision(2) << eta << " from (r,z) 0.0," << std::setw(6) << std::setprecision(1) << z_origin << " inner terms: z0 "<< std::setw(6) << std::setprecision(2) - << s_parameters[key]/s_centralField + << m_parameters[key]/m_centralField << " z^2 "<< std::setw(6) << std::setprecision(3) - << s_parameters[key+1]*z_max*z_max/s_centralField + << m_parameters[key+1]*z_max*z_max/m_centralField << " z^3 " << std::setw(6) << std::setprecision(3) - << s_parameters[key+2]*z_max*z_max*z_max/s_centralField + << m_parameters[key+2]*z_max*z_max*z_max/m_centralField << " outer terms: z0 "<< std::setw(6) << std::setprecision(3) - << s_parameters[key+3]/s_centralField + << m_parameters[key+3]/m_centralField << " z^2 "<< std::setw(6) << std::setprecision(3) - << s_parameters[key+4]*z_max*z_max/s_centralField + << m_parameters[key+4]*z_max*z_max/m_centralField << " z^3 " << std::setw(6) << std::setprecision(3) - << s_parameters[key+5]*z_max*z_max*z_max/s_centralField + << m_parameters[key+5]*z_max*z_max*z_max/m_centralField << std::resetiosflags(std::ios::fixed) << std::endl; } void -SolenoidParametrization::printResidualForEtaLine (double eta, double zOrigin) +SolenoidParametrization::printResidualForEtaLine (double eta, double zOrigin) const { - m_signTheta = 1.; - m_zAtAxis = zOrigin; double cotTheta = 1./std::tan(2.*std::atan(1./std::exp(std::abs(eta)))); double z = zOrigin; double r = 0.; @@ -455,8 +472,8 @@ SolenoidParametrization::printResidualForEtaLine (double eta, double zOrigin) for (int k = 0; k < n; ++k) { double b = fieldComponent(r,z,cotTheta); - setParameters(r,z,cotTheta); - double diff = (fieldComponent(z) - b)/s_lightSpeed; + Parameters parms (*this, r, z, cotTheta); + double diff = (fieldComponent(z, parms) - b)/s_lightSpeed; if (r > s_rInner || z > s_zInner) { @@ -472,7 +489,7 @@ SolenoidParametrization::printResidualForEtaLine (double eta, double zOrigin) if (std::abs(diff) > worstDiff) { worstDiff = std::abs(diff); - worstBCalc = fieldComponent(z); + worstBCalc = fieldComponent(z, parms); worstBTrue = b; worstR = r; worstZ = z; @@ -496,6 +513,14 @@ SolenoidParametrization::printResidualForEtaLine (double eta, double zOrigin) << std::resetiosflags(std::ios::fixed) << std::endl; } + +bool SolenoidParametrization::currentMatches (double current) const +{ + // allow 0.1% fluctuation + return current >= m_currentMin && current < m_currentMax; +} + + } // end of namespace diff --git a/Tracking/TrkExtrapolation/TrkExSolenoidalIntersector/src/SolenoidalIntersector.cxx b/Tracking/TrkExtrapolation/TrkExSolenoidalIntersector/src/SolenoidalIntersector.cxx index a39a899db30b6fe10d306662872735892fd36af6..dea5a22d9103975fc2c2eb0d509ee58bd2c23d35 100755 --- a/Tracking/TrkExtrapolation/TrkExSolenoidalIntersector/src/SolenoidalIntersector.cxx +++ b/Tracking/TrkExtrapolation/TrkExSolenoidalIntersector/src/SolenoidalIntersector.cxx @@ -1,466 +1,545 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2017, 2019 CERN for the benefit of the ATLAS collaboration */ -/////////////////////////////////////////////////////////////////// -// SolenoidalIntersector.cxx, (c) ATLAS Detector software -/////////////////////////////////////////////////////////////////// - -#include "GaudiKernel/Incident.h" -#include "GaudiKernel/SystemOfUnits.h" -#include "TrkExSolenoidalIntersector/SolenoidalIntersector.h" -#include "TrkParameters/TrackParameters.h" -#include "TrkSurfaces/CylinderSurface.h" -#include "TrkSurfaces/DiscSurface.h" -#include "TrkSurfaces/PerigeeSurface.h" -#include "TrkSurfaces/PlaneSurface.h" -#include "TrkSurfaces/StraightLineSurface.h" -#include "TrkSurfaces/Surface.h" - -namespace Trk -{ -SolenoidalIntersector::SolenoidalIntersector (const std::string& type, - const std::string& name, - const IInterface* parent) - : AthAlgTool (type, name, parent), - m_incidentSvc ("IncidentSvc", name), - m_magFieldSvc ("MagField::AtlasFieldSvc/AtlasFieldSvc", name), - m_rungeKuttaIntersector ("Trk::RungeKuttaIntersector/RungeKuttaIntersector"), - m_cotTheta (0.), - m_currentMax (0.), - m_currentMin (0.), - m_deltaPhiTolerance (0.01), // upper limit for small angle approx - m_intersectionNumber (0), - m_oneOverSinTheta (1.), - m_pathLength (0.), - m_qOverP (0.), - m_qOverPt (0.), - m_radius (0.), - m_sinTheta (1.), - m_solenoidParametrization (0), - m_surfaceTolerance (2.0*Gaudi::Units::micrometer), - m_validRadius (0.), - m_validZ (0.), - m_countExtrapolations (0), - m_countRKSwitches (0) -{ - declareInterface<Trk::IIntersector>(this); - declareProperty("MagFieldSvc", m_magFieldSvc ); - declareProperty("RungeKuttaIntersector", m_rungeKuttaIntersector); - declareProperty("SurfaceTolerance", m_surfaceTolerance); -} - -SolenoidalIntersector::~SolenoidalIntersector (void) -{} - -StatusCode -SolenoidalIntersector::initialize() -{ - // print name and package version - ATH_MSG_INFO( "SolenoidalIntersector::initialize() - package version " << PACKAGE_VERSION ); - - if (m_incidentSvc.retrieve().isFailure()) - { - ATH_MSG_FATAL( "Failed to retrieve service " << m_incidentSvc ); - return StatusCode::FAILURE; - } - // register to the incident service: - // BeginEvent needed to ensure the solenoid field parametrization is still valid - m_incidentSvc->addListener( this, IncidentType::BeginEvent); - - if (! m_magFieldSvc.empty()) - { - if (m_magFieldSvc.retrieve().isFailure()) - { - ATH_MSG_FATAL( "Failed to retrieve service " << m_magFieldSvc ); - return StatusCode::FAILURE; - } - else - { - ATH_MSG_INFO( "Retrieved service " << m_magFieldSvc ); - } - } - - if (m_rungeKuttaIntersector.retrieve().isFailure()) - { - ATH_MSG_FATAL( "Failed to retrieve tool " << m_rungeKuttaIntersector ); - return StatusCode::FAILURE; - } - else - { - ATH_MSG_INFO( "Retrieved tool " << m_rungeKuttaIntersector ); - } - - return StatusCode::SUCCESS; -} - -StatusCode -SolenoidalIntersector::finalize() -{ - ATH_MSG_INFO( "finalized after " << m_countExtrapolations << " extrapolations with " - << m_countRKSwitches << " switches to RK integration"); - - return StatusCode::SUCCESS; -} - -/** handle for incident service */ -void -SolenoidalIntersector::handle(const Incident& inc) -{ - // (re)parametrize the solenoidal field whenever necessary at BeginEvent - if (inc.type() == IncidentType::BeginEvent ) - { - // intersector invalid when field off - if (! m_magFieldSvc->solenoidOn()) - { - m_currentMax = 0.; - m_validRadius = 0.; - m_validZ = 0.; - return; - } - - if (m_magFieldSvc->solenoidCurrent() > m_currentMax - || m_magFieldSvc->solenoidCurrent() < m_currentMin) - { - // allow 0.1% fluctuation - m_currentMax = 1.001*m_magFieldSvc->solenoidCurrent(); - m_currentMin = 0.999*m_magFieldSvc->solenoidCurrent(); - - // instantiate the field parametrisation - SolenoidParametrization::clearInstance(); - m_solenoidParametrization = SolenoidParametrization::instance(&*m_magFieldSvc); - - // set limit of validity (cylinder bounds) - if (! m_solenoidParametrization) - { - m_validRadius = 0.; - m_validZ = 0.; - ATH_MSG_WARNING(" mag field parametrization fails" ); - return; - } - m_validRadius = m_solenoidParametrization->maximumR(); - m_validZ = m_solenoidParametrization->maximumZ(); - ATH_MSG_INFO( " SolenoidParametrization current: " << m_magFieldSvc->solenoidCurrent() - << " valid radius,Z : " << m_validRadius << ", " << m_validZ); - - if (msgLvl(MSG::DEBUG)) validationAction(); - } - } -} - -/**IIntersector interface method for general Surface type */ -const Trk::TrackSurfaceIntersection* -SolenoidalIntersector::intersectSurface(const Surface& surface, - const TrackSurfaceIntersection* trackIntersection, - const double qOverP) -{ - const PlaneSurface* plane = dynamic_cast<const PlaneSurface*>(&surface); - if (plane) return intersectPlaneSurface(*plane,trackIntersection,qOverP); - - const StraightLineSurface* straightLine = dynamic_cast<const StraightLineSurface*>(&surface); - if (straightLine) return m_rungeKuttaIntersector->approachStraightLineSurface - (*straightLine, trackIntersection, qOverP); - - const CylinderSurface* cylinder = dynamic_cast<const CylinderSurface*>(&surface); - if (cylinder) return intersectCylinderSurface(*cylinder,trackIntersection,qOverP); - - const DiscSurface* disc = dynamic_cast<const DiscSurface*>(&surface); - if (disc) return intersectDiscSurface(*disc,trackIntersection,qOverP); - - const PerigeeSurface* perigee = dynamic_cast<const PerigeeSurface*>(&surface); - if (perigee) return m_rungeKuttaIntersector->approachPerigeeSurface - (*perigee, trackIntersection, qOverP); - - ATH_MSG_WARNING( " unrecognized Surface" ); - return 0; -} - -/**IIntersector interface method for specific Surface type : PerigeeSurface */ -const Trk::TrackSurfaceIntersection* -SolenoidalIntersector::approachPerigeeSurface(const PerigeeSurface& surface, - const TrackSurfaceIntersection* trackIntersection, - const double qOverP) -{ return m_rungeKuttaIntersector->approachPerigeeSurface(surface, trackIntersection, qOverP); } - -/**IIntersector interface method for specific Surface type : StraightLineSurface */ -const Trk::TrackSurfaceIntersection* -SolenoidalIntersector::approachStraightLineSurface(const StraightLineSurface& surface, - const TrackSurfaceIntersection* trackIntersection, - const double qOverP) -{ return m_rungeKuttaIntersector->approachStraightLineSurface(surface, trackIntersection, qOverP); } - -/**IIntersector interface method for specific Surface type : CylinderSurface */ -const Trk::TrackSurfaceIntersection* -SolenoidalIntersector::intersectCylinderSurface(const CylinderSurface& surface, - const TrackSurfaceIntersection* trackIntersection, - const double qOverP) -{ - double endRadius = surface.globalReferencePoint().perp(); - if (endRadius > m_validRadius) - return m_rungeKuttaIntersector->intersectCylinderSurface(surface, trackIntersection, qOverP); - - // set member data unless extrapolation from existing parameters - setParameters(trackIntersection, qOverP); - - if (std::abs(endRadius -trackIntersection->position().perp()) > m_surfaceTolerance - && ! extrapolateToR(endRadius)) return 0; - return intersection(surface); -} - -/**IIntersector interface method for specific Surface type : DiscSurface */ -const Trk::TrackSurfaceIntersection* -SolenoidalIntersector::intersectDiscSurface (const DiscSurface& surface, - const TrackSurfaceIntersection* trackIntersection, - const double qOverP) -{ - double endZ = surface.center().z(); - if (std::abs(endZ) > m_validZ) - return m_rungeKuttaIntersector->intersectDiscSurface(surface, trackIntersection, qOverP); - - // set member data unless extrapolation from existing parameters - setParameters(trackIntersection, qOverP); - if (std::abs(endZ -trackIntersection->position().z()) > m_surfaceTolerance - && ! extrapolateToZ(endZ)) - { - return 0; - } - - return intersection(surface); -} - -/**IIntersector interface method for specific Surface type : PlaneSurface */ -const Trk::TrackSurfaceIntersection* -SolenoidalIntersector::intersectPlaneSurface(const PlaneSurface& surface, - const TrackSurfaceIntersection* trackIntersection, - const double qOverP) -{ - if (std::abs(surface.center().z()) > m_validZ - || surface.center().perp() > m_validRadius) - return m_rungeKuttaIntersector->intersectPlaneSurface(surface, trackIntersection, qOverP); - - // set member data unless extrapolation from existing parameters - setParameters(trackIntersection, qOverP); - - // step until sufficiently near to plane surface - // this gives wrong answer! - // DistanceSolution solution = surface.straightLineDistanceEstimate(m_position,m_direction); - // if (! solution.signedDistance()) return 0; - // double distance = solution.currentDistance(true); - - int numberSteps = 0; - double dot = surface.normal().dot(m_direction); - double offset = surface.normal().dot(surface.center() - m_position); - - while (std::abs(offset) > m_surfaceTolerance*std::abs(dot)) - { - // take care if grazing incidence - quit if looper - if (std::abs(dot) < 0.0001) return 0; - double distance = offset/dot; - - // extrapolate - if (m_sinTheta < 0.9) - { - if (! extrapolateToZ(m_position.z()+distance*m_direction.z())) return 0; - } - else - { - if (! extrapolateToR((m_position+distance*m_direction).perp())) return 0; - } - - // check we are getting closer to the plane, switch to RK in case of difficulty - dot = surface.normal().dot(m_direction); - offset = surface.normal().dot(surface.center() - m_position); - if (std::abs(offset) > m_surfaceTolerance*std::abs(dot) - && (++numberSteps > 5 || std::abs(offset) > 0.5*std::abs(distance*dot))) - { - ++m_countRKSwitches; - ATH_MSG_DEBUG(" switch to RK after " << numberSteps << " steps at offset " - << offset << " dot " << surface.normal().dot(m_direction)); - - return m_rungeKuttaIntersector->intersectPlaneSurface(surface, trackIntersection, qOverP); - } - }; - - return intersection(surface); -} - -/**IIntersector interface method to check validity of parametrization within extrapolation range */ -bool -SolenoidalIntersector::isValid (Amg::Vector3D startPosition, Amg::Vector3D endPosition) const -{ - // check cylinder bounds for valid parametrization - if (std::abs(endPosition.z()) < m_validZ - && endPosition.perp() < m_validRadius - && m_solenoidParametrization->validOrigin(startPosition)) - { - // ATH_MSG_INFO(" choose solenoidal"); - - return true; - } - - // ATH_MSG_INFO(" choose rungeKutta"); - - return false; -} - -/** tabulate parametrization details */ -void -SolenoidalIntersector::validationAction() const -{ - // validate parametrization - if (m_solenoidParametrization) - { - for (int ieta = 0; ieta != 27; ++ieta) - { - double eta = 0.05 + 0.1*static_cast<double>(ieta); - m_solenoidParametrization->printParametersForEtaLine(+eta,0.); - m_solenoidParametrization->printParametersForEtaLine(-eta,0.); - } - for (int ieta = 0; ieta != 27; ++ieta) - { - double eta = 0.05 + 0.1*static_cast<double>(ieta); - m_solenoidParametrization->printResidualForEtaLine(+eta,0.); - m_solenoidParametrization->printResidualForEtaLine(-eta,0.); - } - m_solenoidParametrization->printFieldIntegrals(); - } -} - -// private methods - - -bool -SolenoidalIntersector::extrapolateToR(double endR) -{ - // ATH_MSG_INFO(" extrapolateToR endR " << endR << " from " << m_position.z() - // << " r " << m_radius << " cotTheta " << m_cotTheta); - - double fieldComponent = m_solenoidParametrization->fieldComponent(m_position.z()); - double curvature = fieldComponent*m_qOverPt; - double arcLength = linearArcLength(endR); - if (std::abs(arcLength*curvature) > m_deltaPhiTolerance) - { - double radiusOfCurvature = 1./curvature; - double xCentre = m_position.x() - - radiusOfCurvature*m_direction.y()*m_oneOverSinTheta; - double yCentre = m_position.y() + - radiusOfCurvature*m_direction.x()*m_oneOverSinTheta; - double cosPhi; - double sinPhi; - arcLength = circularArcLength(endR, - radiusOfCurvature, - xCentre, - yCentre, - m_direction.x() * m_oneOverSinTheta, - m_direction.y() * m_oneOverSinTheta, - cosPhi, - sinPhi); - if (std::abs(arcLength*m_cotTheta) < m_surfaceTolerance) - { - m_position.x() = xCentre + radiusOfCurvature*sinPhi; - m_position.y() = yCentre - radiusOfCurvature*cosPhi; - m_position.z() += arcLength*m_cotTheta; - m_radius = endR; - m_direction.x() = cosPhi*m_sinTheta; - m_direction.y() = sinPhi*m_sinTheta; - m_pathLength += arcLength*m_oneOverSinTheta; - arcLength = 0.; - } - } - - double deltaZ = arcLength*m_cotTheta; - if (std::abs(deltaZ) < m_surfaceTolerance) // avoid FPE with constant curvature parabolic approx - { - double cosPhi = m_direction.x()*m_oneOverSinTheta; - double sinPhi = m_direction.y()*m_oneOverSinTheta; - if (std::abs(arcLength) > m_surfaceTolerance) - { - double sinDPhi = 0.5*arcLength*curvature; - double cosDPhi = 1. - 0.5*sinDPhi*sinDPhi * - (1.0+0.25*sinDPhi*sinDPhi); - double temp = cosPhi; - cosPhi = temp*cosDPhi - sinPhi*sinDPhi; - sinPhi = temp*sinDPhi + sinPhi*cosDPhi; - m_direction.x() = (cosPhi*cosDPhi - sinPhi*sinDPhi)*m_sinTheta; - m_direction.y() = (sinPhi*cosDPhi + cosPhi*sinDPhi)*m_sinTheta; - } - - m_position.x() += arcLength*cosPhi; - m_position.y() += arcLength*sinPhi; - m_position.z() += arcLength*m_cotTheta; - m_radius = endR; - m_pathLength += arcLength*m_oneOverSinTheta; - } - else - { - extrapolateToZ(m_position.z() + deltaZ); - if (std::abs(endR - m_radius) > m_surfaceTolerance) - { - deltaZ = linearArcLength(endR) * m_cotTheta; - extrapolateToZ(m_position.z() + deltaZ); - } - } - - return true; -} - -bool -SolenoidalIntersector::extrapolateToZ(double endZ) -{ - double firstIntegral = 0.; - double secondIntegral = 0.; - m_solenoidParametrization->fieldIntegrals(firstIntegral, - secondIntegral, - m_position.z(), - endZ); - // ATH_MSG_INFO(" extrapolateToZ firstIntegral, secondIntegral " << 1.E6*firstIntegral - // << ", " << 1.E6*secondIntegral); - double DFiMax = 0.1; - double cosPhi = m_direction.x()*m_oneOverSinTheta; - double sinPhi = m_direction.y()*m_oneOverSinTheta; - double cosBeta; - double sinBeta; - double deltaPhi2 = secondIntegral*m_qOverPt/std::abs(m_cotTheta); - if (std::abs(deltaPhi2) < DFiMax) - { - double deltaPhi2Squared= deltaPhi2*deltaPhi2; - sinBeta = 1. - 0.166667*deltaPhi2Squared; - cosBeta = -0.5*deltaPhi2*(1.-0.083333*deltaPhi2Squared); - } - else if (2.*std::abs(deltaPhi2) < M_PI) - { - sinBeta = std::sin(deltaPhi2) / deltaPhi2; - cosBeta = (std::cos(deltaPhi2) - 1.) / deltaPhi2; - } - else - { - return false; - } - - double radialDistance = (endZ - m_position.z()) / m_cotTheta; - m_position.x() += radialDistance*(sinPhi*cosBeta + cosPhi*sinBeta); - m_position.y() += radialDistance*(sinPhi*sinBeta - cosPhi*cosBeta); - m_position.z() = endZ; - m_radius = m_position.perp(); - m_pathLength += radialDistance*m_oneOverSinTheta; - - double cosAlpha; - double sinAlpha; - double deltaPhi1 = firstIntegral*m_qOverPt / std::abs(m_cotTheta); - if (std::abs(deltaPhi1) < DFiMax) - { - double deltaPhi1Squared= deltaPhi1*deltaPhi1; - sinAlpha = deltaPhi1*(1. - 0.166667*deltaPhi1Squared); - cosAlpha = 1. - 0.5*deltaPhi1Squared*(1.-0.083333*deltaPhi1Squared); - } - else - { - sinAlpha = std::sin(deltaPhi1); - cosAlpha = std::cos(deltaPhi1); - } - m_direction.x() = (cosPhi*cosAlpha - sinPhi*sinAlpha)*m_sinTheta; - m_direction.y() = (sinPhi*cosAlpha + cosPhi*sinAlpha)*m_sinTheta;; - return true; -} - -} // end of namespace +/////////////////////////////////////////////////////////////////// +// SolenoidalIntersector.cxx, (c) ATLAS Detector software +/////////////////////////////////////////////////////////////////// + +#include "GaudiKernel/SystemOfUnits.h" +#include "TrkExSolenoidalIntersector/SolenoidalIntersector.h" +#include "TrkParameters/TrackParameters.h" +#include "TrkSurfaces/CylinderSurface.h" +#include "TrkSurfaces/DiscSurface.h" +#include "TrkSurfaces/PerigeeSurface.h" +#include "TrkSurfaces/PlaneSurface.h" +#include "TrkSurfaces/StraightLineSurface.h" +#include "TrkSurfaces/Surface.h" + +namespace Trk +{ + +SolenoidalIntersector::Constants::Constants (const SolenoidParametrization& solpar, + const TrackSurfaceIntersection& trackTrackSurfaceIntersection, + const double qOverP) + : m_sinTheta (trackTrackSurfaceIntersection.direction().perp()), + m_oneOverSinTheta (1./m_sinTheta), + m_cotTheta (trackTrackSurfaceIntersection.direction().z() * m_oneOverSinTheta), + m_qOverPt (qOverP * m_oneOverSinTheta), + m_solPar (solpar), + m_lastPosition (trackTrackSurfaceIntersection.position()), + m_solParams (solpar, + trackTrackSurfaceIntersection.position().perp(), + trackTrackSurfaceIntersection.position().z(), + m_cotTheta) +{ +} + + +SolenoidalIntersector::SolenoidalIntersector (const std::string& type, + const std::string& name, + const IInterface* parent) + : base_class (type, name, parent), + m_magFieldSvc ("MagField::AtlasFieldSvc/AtlasFieldSvc", name), + m_rungeKuttaIntersector ("Trk::RungeKuttaIntersector/RungeKuttaIntersector"), + m_deltaPhiTolerance (0.01), // upper limit for small angle approx + m_surfaceTolerance (2.0*Gaudi::Units::micrometer), + m_countExtrapolations (0), + m_countRKSwitches (0) +{ + declareInterface<Trk::IIntersector>(this); + declareProperty("MagFieldSvc", m_magFieldSvc ); + declareProperty("RungeKuttaIntersector", m_rungeKuttaIntersector); + declareProperty("SurfaceTolerance", m_surfaceTolerance); +} + +SolenoidalIntersector::~SolenoidalIntersector (void) +{} + +StatusCode +SolenoidalIntersector::initialize() +{ + // print name and package version + ATH_MSG_INFO( "SolenoidalIntersector::initialize() - package version " << PACKAGE_VERSION ); + + if (! m_magFieldSvc.empty()) + { + if (m_magFieldSvc.retrieve().isFailure()) + { + ATH_MSG_FATAL( "Failed to retrieve service " << m_magFieldSvc ); + return StatusCode::FAILURE; + } + else + { + ATH_MSG_INFO( "Retrieved service " << m_magFieldSvc ); + } + } + + if (m_rungeKuttaIntersector.retrieve().isFailure()) + { + ATH_MSG_FATAL( "Failed to retrieve tool " << m_rungeKuttaIntersector ); + return StatusCode::FAILURE; + } + else + { + ATH_MSG_INFO( "Retrieved tool " << m_rungeKuttaIntersector ); + } + + return StatusCode::SUCCESS; +} + +StatusCode +SolenoidalIntersector::finalize() +{ + ATH_MSG_INFO( "finalized after " << m_countExtrapolations << " extrapolations with " + << m_countRKSwitches << " switches to RK integration"); + + return StatusCode::SUCCESS; +} + + +const SolenoidParametrization* +SolenoidalIntersector::getSolenoidParametrization() const +{ + double current = m_magFieldSvc->solenoidCurrent(); + + // Check to see if the last one we used is ok. + const SolenoidParametrization* lastpar = m_lastSolenoidParametrization.get(); + if (lastpar && lastpar->currentMatches (current)) { + return lastpar; + } + + std::lock_guard<std::mutex> lock (m_mutex); + + // Search for a new one, and release the reference count on the old one. + const SolenoidParametrization* thispar = nullptr; + Parmlist_t::iterator todel = m_solenoidParametrizations.end(); + for (Parmlist_t::iterator it = m_solenoidParametrizations.begin(); + it != m_solenoidParametrizations.end() && (lastpar || !thispar); + ++it) + { + if (&it->first == lastpar) { + lastpar = nullptr; + if (--it->second <= 0) { + todel = it; + } + } + else if (!thispar && it->first.currentMatches (current)) { + thispar = &it->first; + ++it->second; + } + } + + if (todel != m_solenoidParametrizations.end()) { + m_solenoidParametrizations.erase (todel); + } + + if (!thispar) { + // Didn't find one; make a new one. + m_solenoidParametrizations.emplace_back (&*m_magFieldSvc, 1); + thispar = &m_solenoidParametrizations.back().first; + } + + // Remember which one we used last. + m_lastSolenoidParametrization.set (thispar); + + return thispar; +} + + +/**IIntersector interface method for general Surface type */ +const Trk::TrackSurfaceIntersection* +SolenoidalIntersector::intersectSurface(const Surface& surface, + const TrackSurfaceIntersection* trackIntersection, + const double qOverP) +{ + const PlaneSurface* plane = dynamic_cast<const PlaneSurface*>(&surface); + if (plane) return intersectPlaneSurface(*plane,trackIntersection,qOverP); + + const StraightLineSurface* straightLine = dynamic_cast<const StraightLineSurface*>(&surface); + if (straightLine) return m_rungeKuttaIntersector->approachStraightLineSurface + (*straightLine, trackIntersection, qOverP); + + const CylinderSurface* cylinder = dynamic_cast<const CylinderSurface*>(&surface); + if (cylinder) return intersectCylinderSurface(*cylinder,trackIntersection,qOverP); + + const DiscSurface* disc = dynamic_cast<const DiscSurface*>(&surface); + if (disc) return intersectDiscSurface(*disc,trackIntersection,qOverP); + + const PerigeeSurface* perigee = dynamic_cast<const PerigeeSurface*>(&surface); + if (perigee) return m_rungeKuttaIntersector->approachPerigeeSurface + (*perigee, trackIntersection, qOverP); + + ATH_MSG_WARNING( " unrecognized Surface" ); + return 0; +} + +/**IIntersector interface method for specific Surface type : PerigeeSurface */ +const Trk::TrackSurfaceIntersection* +SolenoidalIntersector::approachPerigeeSurface(const PerigeeSurface& surface, + const TrackSurfaceIntersection* trackIntersection, + const double qOverP) +{ return m_rungeKuttaIntersector->approachPerigeeSurface(surface, trackIntersection, qOverP); } + +/**IIntersector interface method for specific Surface type : StraightLineSurface */ +const Trk::TrackSurfaceIntersection* +SolenoidalIntersector::approachStraightLineSurface(const StraightLineSurface& surface, + const TrackSurfaceIntersection* trackIntersection, + const double qOverP) +{ return m_rungeKuttaIntersector->approachStraightLineSurface(surface, trackIntersection, qOverP); } + +/**IIntersector interface method for specific Surface type : CylinderSurface */ +const Trk::TrackSurfaceIntersection* +SolenoidalIntersector::intersectCylinderSurface(const CylinderSurface& surface, + const TrackSurfaceIntersection* trackIntersection, + const double qOverP) +{ + const SolenoidParametrization* solenoidParametrization = + getSolenoidParametrization(); + + double endRadius = surface.globalReferencePoint().perp(); + if (!solenoidParametrization || endRadius > solenoidParametrization->maximumR()) + return m_rungeKuttaIntersector->intersectCylinderSurface(surface, trackIntersection, qOverP); + + Constants* com = nullptr; + std::unique_ptr<TrackSurfaceIntersection> isect = + newIntersection (*trackIntersection, + *solenoidParametrization, + qOverP, + com); + ++m_countExtrapolations; + + double radius2 = isect->position().perp2(); + if (std::abs(endRadius - sqrt(radius2)) > m_surfaceTolerance + && ! extrapolateToR(*isect, radius2, *com, endRadius)) return 0; + return intersection(std::move(isect), *com, surface); +} + +/**IIntersector interface method for specific Surface type : DiscSurface */ +const Trk::TrackSurfaceIntersection* +SolenoidalIntersector::intersectDiscSurface (const DiscSurface& surface, + const TrackSurfaceIntersection* trackIntersection, + const double qOverP) +{ + const SolenoidParametrization* solenoidParametrization = + getSolenoidParametrization(); + + double endZ = surface.center().z(); + if (!solenoidParametrization || std::abs(endZ) > solenoidParametrization->maximumZ()) + return m_rungeKuttaIntersector->intersectDiscSurface(surface, trackIntersection, qOverP); + + Constants* com = nullptr; + std::unique_ptr<TrackSurfaceIntersection> isect = + newIntersection (*trackIntersection, + *solenoidParametrization, + qOverP, + com); + + ++m_countExtrapolations; + + if (std::abs(endZ -trackIntersection->position().z()) > m_surfaceTolerance + && ! extrapolateToZ(*isect, *com, endZ)) + { + return 0; + } + + return intersection(std::move(isect), *com, surface); +} + +/**IIntersector interface method for specific Surface type : PlaneSurface */ +const Trk::TrackSurfaceIntersection* +SolenoidalIntersector::intersectPlaneSurface(const PlaneSurface& surface, + const TrackSurfaceIntersection* trackIntersection, + const double qOverP) +{ + const SolenoidParametrization* solenoidParametrization = + getSolenoidParametrization(); + + if (!solenoidParametrization || + std::abs(surface.center().z()) > solenoidParametrization->maximumZ() + || surface.center().perp() > solenoidParametrization->maximumR()) + return m_rungeKuttaIntersector->intersectPlaneSurface(surface, trackIntersection, qOverP); + + Constants* com = nullptr; + std::unique_ptr<TrackSurfaceIntersection> isect = + newIntersection (*trackIntersection, + *solenoidParametrization, + qOverP, + com); + Amg::Vector3D& pos = isect->position(); + Amg::Vector3D& dir = isect->direction(); + ++m_countExtrapolations; + double radius2 = pos.perp2(); + + // step until sufficiently near to plane surface + // this gives wrong answer! + // DistanceSolution solution = surface.straightLineDistanceEstimate(pos,dir); + // if (! solution.signedDistance()) return 0; + // double distance = solution.currentDistance(true); + + int numberSteps = 0; + double dot = surface.normal().dot(dir); + double offset = surface.normal().dot(surface.center() - pos); + + while (std::abs(offset) > m_surfaceTolerance*std::abs(dot)) + { + // take care if grazing incidence - quit if looper + if (std::abs(dot) < 0.0001) return 0; + double distance = offset/dot; + + // extrapolate + if (com->m_sinTheta < 0.9) + { + if (! extrapolateToZ(*isect, *com, pos.z()+distance*dir.z())) return 0; + radius2 = pos.perp2(); + } + else + { + if (! extrapolateToR(*isect, radius2, *com, (pos+distance*dir).perp())) return 0; + } + + // check we are getting closer to the plane, switch to RK in case of difficulty + dot = surface.normal().dot(dir); + offset = surface.normal().dot(surface.center() - pos); + if (std::abs(offset) > m_surfaceTolerance*std::abs(dot) + && (++numberSteps > 5 || std::abs(offset) > 0.5*std::abs(distance*dot))) + { + ++m_countRKSwitches; + ATH_MSG_DEBUG(" switch to RK after " << numberSteps << " steps at offset " + << offset << " dot " << surface.normal().dot(dir)); + + return m_rungeKuttaIntersector->intersectPlaneSurface(surface, trackIntersection, qOverP); + } + }; + + return intersection(std::move(isect), *com, surface); +} + +/**IIntersector interface method to check validity of parametrization within extrapolation range */ +bool +SolenoidalIntersector::isValid (Amg::Vector3D startPosition, Amg::Vector3D endPosition) const +{ + const SolenoidParametrization* solenoidParametrization = + getSolenoidParametrization(); + + // check cylinder bounds for valid parametrization + if (solenoidParametrization && + std::abs(endPosition.z()) < solenoidParametrization->maximumZ() + && endPosition.perp() < solenoidParametrization->maximumR() + && getSolenoidParametrization()->validOrigin(startPosition)) + { + // ATH_MSG_INFO(" choose solenoidal"); + + return true; + } + + // ATH_MSG_INFO(" choose rungeKutta"); + + return false; +} + +/** tabulate parametrization details */ +void +SolenoidalIntersector::validationAction() const +{ + const SolenoidParametrization* solenoidParametrization = + getSolenoidParametrization(); + + // validate parametrization + if (solenoidParametrization) + { + for (int ieta = 0; ieta != 27; ++ieta) + { + double eta = 0.05 + 0.1*static_cast<double>(ieta); + solenoidParametrization->printParametersForEtaLine(+eta,0.); + solenoidParametrization->printParametersForEtaLine(-eta,0.); + } + for (int ieta = 0; ieta != 27; ++ieta) + { + double eta = 0.05 + 0.1*static_cast<double>(ieta); + solenoidParametrization->printResidualForEtaLine(+eta,0.); + solenoidParametrization->printResidualForEtaLine(-eta,0.); + } + solenoidParametrization->printFieldIntegrals(); + } +} + +// private methods + + +bool +SolenoidalIntersector::extrapolateToR(TrackSurfaceIntersection& isect, + double& radius2, + Constants& com, + const double endR) const +{ + Amg::Vector3D& pos = isect.position(); + Amg::Vector3D& dir = isect.direction(); + + // ATH_MSG_INFO(" extrapolateToR endR " << endR << " from " << pos.z() + // << " r " << sqrt(radius2) << " cotTheta " << com.m_cotTheta); + + double fieldComponent = com.m_solPar.fieldComponent(pos.z(), com.m_solParams); + double curvature = fieldComponent*com.m_qOverPt; + double arcLength = linearArcLength(isect, com, radius2, endR); + if (std::abs(arcLength*curvature) > m_deltaPhiTolerance) + { + double radiusOfCurvature = 1./curvature; + double xCentre = pos.x() - + radiusOfCurvature*dir.y()*com.m_oneOverSinTheta; + double yCentre = pos.y() + + radiusOfCurvature*dir.x()*com.m_oneOverSinTheta; + double cosPhi; + double sinPhi; + arcLength = circularArcLength(endR, + radiusOfCurvature, + xCentre, + yCentre, + dir.x() * com.m_oneOverSinTheta, + dir.y() * com.m_oneOverSinTheta, + cosPhi, + sinPhi); + if (std::abs(arcLength*com.m_cotTheta) < m_surfaceTolerance) + { + pos.x() = xCentre + radiusOfCurvature*sinPhi; + pos.y() = yCentre - radiusOfCurvature*cosPhi; + pos.z() += arcLength*com.m_cotTheta; + radius2 = endR*endR; + dir.x() = cosPhi*com.m_sinTheta; + dir.y() = sinPhi*com.m_sinTheta; + isect.pathlength() += arcLength*com.m_oneOverSinTheta; + arcLength = 0.; + } + } + + double deltaZ = arcLength*com.m_cotTheta; + if (std::abs(deltaZ) < m_surfaceTolerance) // avoid FPE with constant curvature parabolic approx + { + double cosPhi = dir.x()*com.m_oneOverSinTheta; + double sinPhi = dir.y()*com.m_oneOverSinTheta; + if (std::abs(arcLength) > m_surfaceTolerance) + { + double sinDPhi = 0.5*arcLength*curvature; + double cosDPhi = 1. - 0.5*sinDPhi*sinDPhi * + (1.0+0.25*sinDPhi*sinDPhi); + double temp = cosPhi; + cosPhi = temp*cosDPhi - sinPhi*sinDPhi; + sinPhi = temp*sinDPhi + sinPhi*cosDPhi; + dir.x() = (cosPhi*cosDPhi - sinPhi*sinDPhi)*com.m_sinTheta; + dir.y() = (sinPhi*cosDPhi + cosPhi*sinDPhi)*com.m_sinTheta; + } + + pos.x() += arcLength*cosPhi; + pos.y() += arcLength*sinPhi; + pos.z() += arcLength*com.m_cotTheta; + radius2 = endR*endR; + isect.pathlength() += arcLength*com.m_oneOverSinTheta; + } + else + { + extrapolateToZ(isect, com, pos.z() + deltaZ); + radius2 = pos.perp2(); + if (std::abs(endR - sqrt(radius2)) > m_surfaceTolerance) + { + deltaZ = linearArcLength(isect, com, radius2, endR) * com.m_cotTheta; + extrapolateToZ(isect, com, pos.z() + deltaZ); + radius2 = pos.perp2(); + } + } + + return true; +} + +bool +SolenoidalIntersector::extrapolateToZ(TrackSurfaceIntersection& isect, + Constants& com, + const double endZ) const +{ + Amg::Vector3D& pos = isect.position(); + Amg::Vector3D& dir = isect.direction(); + + double firstIntegral = 0.; + double secondIntegral = 0.; + com.m_solPar.fieldIntegrals(firstIntegral, + secondIntegral, + pos.z(), + endZ, + com.m_solParams); + // ATH_MSG_INFO(" extrapolateToZ firstIntegral, secondIntegral " << 1.E6*firstIntegral + // << ", " << 1.E6*secondIntegral); + double DFiMax = 0.1; + double cosPhi = dir.x()*com.m_oneOverSinTheta; + double sinPhi = dir.y()*com.m_oneOverSinTheta; + double cosBeta; + double sinBeta; + double deltaPhi2 = secondIntegral*com.m_qOverPt/std::abs(com.m_cotTheta); + if (std::abs(deltaPhi2) < DFiMax) + { + double deltaPhi2Squared= deltaPhi2*deltaPhi2; + sinBeta = 1. - 0.166667*deltaPhi2Squared; + cosBeta = -0.5*deltaPhi2*(1.-0.083333*deltaPhi2Squared); + } + else if (2.*std::abs(deltaPhi2) < M_PI) + { + sinBeta = std::sin(deltaPhi2) / deltaPhi2; + cosBeta = (std::cos(deltaPhi2) - 1.) / deltaPhi2; + } + else + { + return false; + } + + double radialDistance = (endZ - pos.z()) / com.m_cotTheta; + pos.x() += radialDistance*(sinPhi*cosBeta + cosPhi*sinBeta); + pos.y() += radialDistance*(sinPhi*sinBeta - cosPhi*cosBeta); + pos.z() = endZ; + isect.pathlength() += radialDistance*com.m_oneOverSinTheta; + + double cosAlpha; + double sinAlpha; + double deltaPhi1 = firstIntegral*com.m_qOverPt / std::abs(com.m_cotTheta); + if (std::abs(deltaPhi1) < DFiMax) + { + double deltaPhi1Squared= deltaPhi1*deltaPhi1; + sinAlpha = deltaPhi1*(1. - 0.166667*deltaPhi1Squared); + cosAlpha = 1. - 0.5*deltaPhi1Squared*(1.-0.083333*deltaPhi1Squared); + } + else + { + sinAlpha = std::sin(deltaPhi1); + cosAlpha = std::cos(deltaPhi1); + } + dir.x() = (cosPhi*cosAlpha - sinPhi*sinAlpha)*com.m_sinTheta; + dir.y() = (sinPhi*cosAlpha + cosPhi*sinAlpha)*com.m_sinTheta; + return true; +} + + +std::unique_ptr<TrackSurfaceIntersection> +SolenoidalIntersector::newIntersection (const TrackSurfaceIntersection& isect, + const SolenoidParametrization& solpar, + const double qOverP, + Constants*& com) const +{ + const TrackSurfaceIntersection::IIntersectionCache* oldCache = isect.cache(); + std::unique_ptr<Constants> cache; + const Amg::Vector3D* lastPosition = nullptr; + if (oldCache && typeid(*oldCache) == typeid(Constants)) { + cache = std::make_unique<Constants> (*static_cast<const Constants*> (oldCache)); + lastPosition = &cache->m_lastPosition; + } + else { + cache = std::make_unique<Constants> (solpar, isect, qOverP); + } + + com = cache.get(); + auto newIsect = std::make_unique<TrackSurfaceIntersection> (isect, + std::move (cache)); + if (lastPosition) { + newIsect->position() = *lastPosition; + } + return newIsect; +} + + +} // end of namespace diff --git a/Tracking/TrkExtrapolation/TrkExSolenoidalIntersector/test/SolenoidParametrization_test.cxx b/Tracking/TrkExtrapolation/TrkExSolenoidalIntersector/test/SolenoidParametrization_test.cxx index 305f0173d80e76b6190b54109fe5c47f84100bd0..24348ab7dbe290620b4e3864a7c4c7705419c04a 100644 --- a/Tracking/TrkExtrapolation/TrkExSolenoidalIntersector/test/SolenoidParametrization_test.cxx +++ b/Tracking/TrkExtrapolation/TrkExSolenoidalIntersector/test/SolenoidParametrization_test.cxx @@ -32,9 +32,7 @@ void test1 (Trk::SolenoidParametrization& sol) { std::cout << "test1\n"; - assert (sol.hasParametrization()); - sol.setParameters (/*r=*/30*cm, /*z=*/123*cm, /*cotTheta=*/1); - assert (sol.hasParametrization()); + Trk::SolenoidParametrization::Parameters parms (sol, /*r=*/30*cm, /*z=*/123*cm, /*cotTheta=*/1); assert( sol.validOrigin (Amg::Vector3D ({10, 10, 10})) ); assert( !sol.validOrigin (Amg::Vector3D ({50, 10, 10})) ); @@ -44,14 +42,14 @@ void test1 (Trk::SolenoidParametrization& sol) assert( Athena_test::isEqual (sol.maximumZ(), 2150) ); assert( Athena_test::isEqual (sol.centralField(), -0.598746) ); - assert( Athena_test::isEqual (sol.fieldComponent (123*cm), -0.592178) ); + assert( Athena_test::isEqual (sol.fieldComponent (123*cm, parms), -0.592178) ); assert( Athena_test::isEqual (sol.fieldComponent (30*cm, 123*cm, 1), -0.551903) ); double firstIntegral = 0; double secondIntegral = 0; sol.fieldIntegrals (firstIntegral, secondIntegral, - 100*cm, 150*cm); + 100*cm, 150*cm, parms); assert( Athena_test::isEqual (firstIntegral, -295.526) ); assert( Athena_test::isEqual (secondIntegral, -296.768) ); } @@ -66,10 +64,8 @@ int main() Incident inc_br ("test", IncidentType::BeginRun); dynamic_cast<IIncidentListener*>(&*field)->handle (inc_br); - Trk::SolenoidParametrization* sol = - Trk::SolenoidParametrization::instance (&*field); - - test1 (*sol); + Trk::SolenoidParametrization sol (&*field); + test1 (sol); return 0; } diff --git a/Tracking/TrkExtrapolation/TrkExSolenoidalIntersector/test/SolenoidalIntersector_test.cxx b/Tracking/TrkExtrapolation/TrkExSolenoidalIntersector/test/SolenoidalIntersector_test.cxx index 8e972966b1d0fa8becfd881baad5c031308e84d3..b505fe9d4581da7428311dc74e378ae77d673592 100644 --- a/Tracking/TrkExtrapolation/TrkExSolenoidalIntersector/test/SolenoidalIntersector_test.cxx +++ b/Tracking/TrkExtrapolation/TrkExSolenoidalIntersector/test/SolenoidalIntersector_test.cxx @@ -290,8 +290,6 @@ int main() ServiceHandle<MagField::IMagFieldSvc> field ("MagField::AtlasFieldSvc/AtlasFieldSvc", "test"); Incident inc_br ("test", IncidentType::BeginRun); dynamic_cast<IIncidentListener*>(&*field)->handle (inc_br); - Incident inc_be ("test", IncidentType::BeginEvent); - dynamic_cast<IIncidentListener*>(&*tool)->handle (inc_be); test_plane (*tool); test_line (*tool); diff --git a/Trigger/TrigFTK/TrigFTKByteStream/TrigFTKByteStream/TrigFTKByteStreamCnv.h b/Trigger/TrigFTK/TrigFTKByteStream/TrigFTKByteStream/TrigFTKByteStreamCnv.h index 796c429292ceec702e36104d84c3a71175398bb2..34e22a0d94a5a60e4a879916e26e1c91f85520a9 100755 --- a/Trigger/TrigFTK/TrigFTKByteStream/TrigFTKByteStream/TrigFTKByteStreamCnv.h +++ b/Trigger/TrigFTK/TrigFTKByteStream/TrigFTKByteStream/TrigFTKByteStreamCnv.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #ifndef TrigTrigFTKByteStreamCnv_h @@ -12,9 +12,6 @@ * * @brief Gaudi bytestream Converter for the TrigFTK class * - * - * File and Version Information: - * $Id: **********************************************************************************/ #include "GaudiKernel/Converter.h" @@ -24,16 +21,10 @@ #include "TrigFTKByteStream/TrigFTKByteStreamTool.h" -//#include <string> - // forward declarations class IROBDataProviderSvc; class IByteStreamEventAccess; - -// Externals -extern unsigned char ByteStream_StorageType; - namespace FTK { class FTKByteStreamTool; @@ -79,7 +70,7 @@ namespace FTK { virtual StatusCode createRep(DataObject* pObj, IOpaqueAddress*& pAddr); //!< create bytestream from RDOs (TrigFTK) // Storage type and class ID - static unsigned char storageType() { return ByteStream_StorageType; } //!< used for the converter + static unsigned char storageType() { return ByteStreamAddress::storageType(); } //!< used for the converter static const CLID& classID(); //!< CLID long repSvcType() const { return i_repSvcType(); } //!< return repSvcType diff --git a/Trigger/TrigFTK/TrigFTKByteStream/src/TrigFTKByteStreamCnv.cxx b/Trigger/TrigFTK/TrigFTKByteStream/src/TrigFTKByteStreamCnv.cxx index 82c13c99b19e84cbdb2627244eadc8a89d181c55..6a5ccd81255d61a46bce4af51a723d7746de0cf5 100755 --- a/Trigger/TrigFTK/TrigFTKByteStream/src/TrigFTKByteStreamCnv.cxx +++ b/Trigger/TrigFTK/TrigFTKByteStream/src/TrigFTKByteStreamCnv.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #include "ByteStreamData/ROBData.h" @@ -22,7 +22,7 @@ //------------------------------------------------------------------------------ FTK::TrigFTKByteStreamCnv::TrigFTKByteStreamCnv(ISvcLocator* svcloc) : - Converter(ByteStream_StorageType, classID(),svcloc), + Converter(storageType(), classID(),svcloc), m_log(0), m_tool("FTK::TrigFTKByteStreamTool"), m_ByteStreamEventAccess("ByteStreamCnvSvc", "TrigFTKByteStreamCnv"), diff --git a/Trigger/TrigHypothesis/TrigBjetHypo/python/TrigBjetEtHypoTool.py b/Trigger/TrigHypothesis/TrigBjetHypo/python/TrigBjetEtHypoTool.py index fb9689679cae1c158c052358bc6bae2c1bde743f..3f849855c65d286a471e1f99c21169e9b38795cc 100644 --- a/Trigger/TrigHypothesis/TrigBjetHypo/python/TrigBjetEtHypoTool.py +++ b/Trigger/TrigHypothesis/TrigBjetHypo/python/TrigBjetEtHypoTool.py @@ -9,26 +9,29 @@ from AthenaCommon.Constants import VERBOSE,DEBUG #################################################################################################### -def TrigBjetEtHypoToolFromName_j( name, conf ): +def TrigBjetEtHypoToolFromDict_j( chainDict ): + from AthenaCommon.Constants import DEBUG """ set the name of the EtHypoTool (name=chain) and figure out the threshold and selection from conf """ + name = chainDict['chainName'] + chainPart = chainDict['chainParts'][0] - default_conf = { 'threshold' : '0', - 'multiplicity' : '1', - 'gscThreshold' : '0', - 'bTag' : 'offperf', - 'bConfig' : 'EF', - 'minEta' : '0', - 'maxEta' : '320', - 'L1' : None } + conf_dict = { 'threshold' : chainPart['threshold'], + 'multiplicity' : '1', + 'gscThreshold' : '0', + 'bTag' : 'offperf', + 'bConfig' : 'EF', + 'minEta' : chainPart['etaRange'].split('eta')[0], + 'maxEta' : chainPart['etaRange'].split('eta')[1], + 'L1' : None } - chain = conf - match = re_Bjet.match( chain ) - conf_dict = match.groupdict() + # chain = conf + # match = re_Bjet.match( chain ) + # conf_dict = match.groupdict() - for k, v in default_conf.items(): - if k not in conf_dict: conf_dict[k] = v - if conf_dict[k] == None: conf_dict[k] = v + # for k, v in default_conf.items(): + # if k not in conf_dict: conf_dict[k] = v + # if conf_dict[k] == None: conf_dict[k] = v from TrigBjetHypo.TrigBjetHypoConf import TrigBjetEtHypoTool tool = TrigBjetEtHypoTool( name ) @@ -41,26 +44,40 @@ def TrigBjetEtHypoToolFromName_j( name, conf ): print "TrigBjetEtHypoToolFromName_j: name = %s, cut_j = %s "%(name,tool.EtThreshold) return tool -def TrigBjetEtHypoToolFromName_gsc( name, conf ): +def TrigBjetEtHypoToolFromName_j( name, conf ): + from TriggerMenuMT.HLTMenuConfig.Menu.DictFromChainName import DictFromChainName + + decoder = DictFromChainName() + decodedDict = decoder.analyseShortName(conf, [], "") # no L1 info + decodedDict['chainName'] = name # override + + return TrigBjetEtHypoToolFromDict_j( decodedDict ) + + +def TrigBjetEtHypoToolFromDict_gsc( chainDict ): from AthenaCommon.Constants import DEBUG """ set the name of the EtHypoTool (name=chain) and figure out the threshold and selection from conf """ + + name = chainDict['chainName'] + chainPart = chainDict['chainParts'][0] + - default_conf = { 'threshold' : '0', - 'multiplicity' : '1', - 'gscThreshold' : '0', - 'bTag' : 'offperf', - 'bConfig' : 'EF', - 'minEta' : '0', - 'maxEta' : '320', - 'L1' : None } + conf_dict = { 'threshold' : '0', + 'multiplicity' : '1', + 'gscThreshold' : '0' if 'gscThreshold' not in chainPart else chainPart['gscThreshold'].replace('gsc',''), + 'bTag' : 'offperf', + 'bConfig' : 'EF', + 'minEta' : chainPart['etaRange'].split('eta')[0], + 'maxEta' : chainPart['etaRange'].split('eta')[1], + 'L1' : None } - chain = conf - match = re_Bjet.match( chain ) - conf_dict = match.groupdict() + # chain = conf + # match = re_Bjet.match( chain ) + # conf_dict = match.groupdict() - for k, v in default_conf.items(): - if k not in conf_dict: conf_dict[k] = v - if conf_dict[k] == None: conf_dict[k] = v + # for k, v in default_conf.items(): + # if k not in conf_dict: conf_dict[k] = v + # if conf_dict[k] == None: conf_dict[k] = v from TrigBjetHypo.TrigBjetHypoConf import TrigBjetEtHypoTool tool = TrigBjetEtHypoTool( name ) @@ -72,6 +89,16 @@ def TrigBjetEtHypoToolFromName_gsc( name, conf ): print "TrigBjetEtHypoToolFromName_gsc: name = %s, cut_j = %s "%(name,tool.EtThreshold) return tool + +def TrigBjetEtHypoToolFromName_gsc( name, conf ): + from TriggerMenuMT.HLTMenuConfig.Menu.DictFromChainName import DictFromChainName + + decoder = DictFromChainName() + decodedDict = decoder.analyseShortName(conf, [], "") # no L1 info + decodedDict['chainName'] = name # override + + return TrigBjetEtHypoToolFromDict_gsc( decodedDict ) + #################################################################################################### diff --git a/Trigger/TrigHypothesis/TrigEgammaHypo/python/TrigL2CaloHypoTool.py b/Trigger/TrigHypothesis/TrigEgammaHypo/python/TrigL2CaloHypoTool.py index 9f9bf2d3898e05009f4d13952f87b0b56638d291..188fa526cce207224a3b580c9c01f176751d13f1 100644 --- a/Trigger/TrigHypothesis/TrigEgammaHypo/python/TrigL2CaloHypoTool.py +++ b/Trigger/TrigHypothesis/TrigEgammaHypo/python/TrigL2CaloHypoTool.py @@ -78,7 +78,7 @@ def _IncTool(name, threshold, sel): tool.CARCOREthr = same( -9999. ) tool.CAERATIOthr = same( -9999. ) - elif sel == "etcut": + elif "etcut" in sel: # stcut is part of the name, it can as well be etcut1step (test chains) tool.ETthr = same( ( float( threshold ) - 3 )*GeV ) # No other cuts applied tool.dETACLUSTERthr = 9999. @@ -155,20 +155,23 @@ def TrigL2CaloHypoToolFromName( name, conf ): if __name__ == "__main__": from TriggerJobOpts.TriggerFlags import TriggerFlags TriggerFlags.enableMonitoring=['Validation'] - t = TrigL2CaloHypoToolFromName( "HLT_e10_nocut", "HLT_e10_nocut" ) - assert t, "cant configure NoCut" + # t = TrigL2CaloHypoToolFromName( "HLT_e10_nocut", "HLT_e10_nocut" ) + # assert t, "cant configure NoCut" + # not possible after recent trimming in SignatureDict, will be restored #print t t = TrigL2CaloHypoToolFromName( "HLT_e10_etcut","HLT_e10_etcut" ) assert t, "cant configure EtCut" print t - t = TrigL2CaloHypoToolFromName( "HLT_e10_tight", "HLT_e10_tight" ) - assert t, "cant configure rel selection - tight" + # t = TrigL2CaloHypoToolFromName( "HLT_e10_tight", "HLT_e10_tight" ) + # assert t, "cant configure rel selection - tight" + # not possible after recent trimming in SignatureDict, will be restored #print t - t = TrigL2CaloHypoToolFromName( "HLT_e10_perf", "HLT_e10_perf" ) - assert t, "cant configure rel selection - perf" + # t = TrigL2CaloHypoToolFromName( "HLT_e10_perf", "HLT_e10_perf" ) + # assert t, "cant configure rel selection - perf" + # not possible after recent trimming in SignatureDict, will be restored #print t t = TrigL2CaloHypoToolFromName( "HLT_2e5_etcut", "HLT_2e5_etcut" ) diff --git a/Trigger/TrigHypothesis/TrigMissingETHypo/TrigMissingETHypo/ITrigMissingETHypoToolMT.h b/Trigger/TrigHypothesis/TrigMissingETHypo/TrigMissingETHypo/ITrigMissingETHypoToolMT.h index 4f031b271de4c36ac98ce66a514573a5c2a3b1e9..2a3a5dda8c0473550691e01b880c8064a4ea553c 100644 --- a/Trigger/TrigHypothesis/TrigMissingETHypo/TrigMissingETHypo/ITrigMissingETHypoToolMT.h +++ b/Trigger/TrigHypothesis/TrigMissingETHypo/TrigMissingETHypo/ITrigMissingETHypoToolMT.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #ifndef TRIGMISSINGET_ITRIGMISSINGETHYPOTOOLMT_H @@ -11,9 +11,6 @@ #include "DecisionHandling/HLTIdentifier.h" -using TrigCompositeUtils::DecisionID; - - class ITrigMissingETHypoToolMT : virtual public::IAlgTool { public: diff --git a/Trigger/TrigHypothesis/TrigMissingETHypo/src/TrigMissingETHypoAlgMT.h b/Trigger/TrigHypothesis/TrigMissingETHypo/src/TrigMissingETHypoAlgMT.h index 1c699b0b0ce81c782f6fb6577536ed52d37c9ec2..7fabfe2491eec618f5ea16fcba913fd7e3d93dfd 100644 --- a/Trigger/TrigHypothesis/TrigMissingETHypo/src/TrigMissingETHypoAlgMT.h +++ b/Trigger/TrigHypothesis/TrigMissingETHypo/src/TrigMissingETHypoAlgMT.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #ifndef TRIGMISSINGETHYPO_TRIGMISSINGETHYPOALGMT_H #define TRIGMISSINGETHYPO_TRIGMISSINGETHYPOALGMT_H @@ -14,8 +14,6 @@ #include "TrigMissingETHypo/ITrigMissingETHypoToolMT.h" #include "xAODTrigMissingET/TrigMissingETContainer.h" -using TrigCompositeUtils::DecisionContainer; - /** * @class TrigMissingETHypoAlgMT * @brief Implements MET selection for the HLT framework @@ -36,7 +34,7 @@ class TrigMissingETHypoAlgMT : public ::HypoBase { // TODO: Consider taking muonContainer etc in case they are needed in future. StatusCode decide(const xAOD::TrigMissingETContainer*, TrigCompositeUtils::DecisionContainer* newDecisions, - const DecisionContainer* previousDecisions + const TrigCompositeUtils::DecisionContainer* previousDecisions ) const; ToolHandleArray<ITrigMissingETHypoToolMT> m_hypoTools { diff --git a/Trigger/TrigHypothesis/TrigTauHypo/python/TrigL2TauHypoTool.py b/Trigger/TrigHypothesis/TrigTauHypo/python/TrigL2TauHypoTool.py index fff2b2041718f4e111969ebdc88b655b9bddcf96..94cdc988aeaba1a661baca411ab5b8dc628cbe0d 100644 --- a/Trigger/TrigHypothesis/TrigTauHypo/python/TrigL2TauHypoTool.py +++ b/Trigger/TrigHypothesis/TrigTauHypo/python/TrigL2TauHypoTool.py @@ -1,14 +1,18 @@ +# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration -def TrigTauHypoProvider( name, conf ): - part='calo' - threshold='25' - criteria='medium1' - strategy='tracktwo' +def TrigL2TauHypoToolFromDict( chainDict ): + + name = chainDict['chainName'] + chainPart = chainDict['chainParts'][0] + part='calo' + threshold='25' # chainPart['threshold'] else not quite testing anything, leaving to experts + criteria= 'medium1' # likely chainPart['selection'] + strategy='tracktwo' # do not know which chain property maps here, experts need to look print "TrigL2TauHypoTool: name = ", name # Simple implementation of 2015 pre-selection - currentHypoKey = 'l2'+part+'_tau'+threshold+'_'+criteria+'_'+strategy + #currentHypoKey = 'l2'+part+'_tau'+threshold+'_'+criteria+'_'+strategy # Re-define the calo part using the generic hypo if part == 'calo': @@ -31,3 +35,16 @@ def TrigTauHypoProvider( name, conf ): currentHypo.Formulas = theFormulas return currentHypo + + +def TrigTauHypoProvider( name, conf ): + from AthenaCommon.Constants import DEBUG + """ Configure a b-jet hypo tool from chain name. """ + + from TriggerMenuMT.HLTMenuConfig.Menu.DictFromChainName import DictFromChainName + + decoder = DictFromChainName() + decodedDict = decoder.analyseShortName(conf, [], "") # no L1 info + decodedDict['chainName'] = name # override + + return TrigL2TauHypoToolFromDict( decodedDict ) diff --git a/Trigger/TrigSteer/DecisionHandling/src/InputMakerBase.cxx b/Trigger/TrigSteer/DecisionHandling/src/InputMakerBase.cxx index 34e8daff94ef8b8512f7772a1db49870f88b440e..9b121848d24b869fdaa2590d3790890f12822916 100644 --- a/Trigger/TrigSteer/DecisionHandling/src/InputMakerBase.cxx +++ b/Trigger/TrigSteer/DecisionHandling/src/InputMakerBase.cxx @@ -122,7 +122,13 @@ StatusCode InputMakerBase::debugPrintOut(const EventContext& context, const std: for ( auto inputKey: decisionInputs() ) { auto inputHandle = SG::makeHandle( inputKey, context ); ATH_MSG_DEBUG(" " << inputKey.key() << " " << (inputHandle.isValid()? "valid": "not valid" ) ); - if (inputHandle.isValid()) validInput++; + if (inputHandle.isValid()) { + if (inputHandle->size() > 0) { + validInput++; + } else { + ATH_MSG_DEBUG(" " << inputKey.key() << " actually NOT valid due to size() == 0"); + } + } } size_t validOutput=0; ATH_MSG_DEBUG( "number of implicit ReadHandles for input decisions is " << decisionInputs().size() << ", " << validInput << " are valid" ); diff --git a/Trigger/TrigSteer/TrigHLTResultByteStream/TrigHLTResultByteStream/HLTResultByteStreamCnv.h b/Trigger/TrigSteer/TrigHLTResultByteStream/TrigHLTResultByteStream/HLTResultByteStreamCnv.h index a503fd99c27fa95eed128335db5b6fa482922a78..acd3d26850196d06f64bb1465ff7c792e3c3be8f 100755 --- a/Trigger/TrigSteer/TrigHLTResultByteStream/TrigHLTResultByteStream/HLTResultByteStreamCnv.h +++ b/Trigger/TrigSteer/TrigHLTResultByteStream/TrigHLTResultByteStream/HLTResultByteStreamCnv.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #ifndef TrigHLTResultByteStreamCnv_h @@ -16,7 +16,6 @@ * * * File and Version Information: - * $Id: HLTResultByteStreamCnv.h,v 1.4 2009-02-26 16:29:25 tbold Exp $ **********************************************************************************/ #include <string> @@ -38,9 +37,6 @@ class IAddressCreator; class MsgStream; -// Externals -extern unsigned char ByteStream_StorageType; - namespace HLT { class HLTResultByteStreamTool; @@ -85,8 +81,7 @@ namespace HLT { virtual StatusCode createObj(IOpaqueAddress* pAddr, DataObject*& pObj); //!< create RDO (HLTResult) from bytestream virtual StatusCode createRep(DataObject* pObj, IOpaqueAddress*& pAddr); //!< create bytestream from RDOs (HLTResult) - // Storage type and class ID - static unsigned char storageType() { return ByteStream_StorageType; } //!< used for the converter + static long storageType(); //!< storageType static const CLID& classID(); //!< CLID long repSvcType() const { return i_repSvcType(); } //!< return repSvcType diff --git a/Trigger/TrigSteer/TrigHLTResultByteStream/TrigHLTResultByteStream/HLTResultByteStreamCnv.icc b/Trigger/TrigSteer/TrigHLTResultByteStream/TrigHLTResultByteStream/HLTResultByteStreamCnv.icc deleted file mode 100755 index da5df67e347bcb8f7cee62f7e8c3544d8d440112..0000000000000000000000000000000000000000 --- a/Trigger/TrigSteer/TrigHLTResultByteStream/TrigHLTResultByteStream/HLTResultByteStreamCnv.icc +++ /dev/null @@ -1,176 +0,0 @@ -// -*- c++ -*- - -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - - -#include "TrigHLTResultByteStream/HLTResultByteStreamTool.h" -#include "TrigHLTResultByteStream/HLTSrcIdMap.h" - -#include "ByteStreamCnvSvcBase/ByteStreamAddressL1R.h" -#include "ByteStreamData/RawEvent.h" -//#include "eformat/RawMemoryFragment.h" -//#include "eformat/RawMemorySimpleFragment.h" - -#include "GaudiKernel/MsgStream.h" -#include "GaudiKernel/StatusCode.h" -#include "GaudiKernel/DataObject.h" -#include "GaudiKernel/IRegistry.h" - -#include "TrigSteeringEvent/HLTResult.h" - -#include "StoreGate/StoreGate.h" -//#include "StoreGate/tools/ClassID_traits.h" -#include "AthenaKernel/CLASS_DEF.h" - -// Tool -#include "GaudiKernel/IToolSvc.h" - -#include <map> - -/** - Constructor -*/ -template <class ROBF> -HLT::HLTResultByteStreamCnv<ROBF>::HLTResultByteStreamCnv(ISvcLocator* svcloc) : - Converter(ByteStream_StorageType, classID(), svcloc) -{ -} - -/** - CLID -*/ -template <class ROBF> -const CLID& HLT::HLTResultByteStreamCnv<ROBF>::classID(){ -return ClassID_traits<HLTResult>::ID() ; -} - - -/** - Init method gets all necessary services etc. -*/ -template <class ROBF> -StatusCode HLT::HLTResultByteStreamCnv<ROBF>::initialize() -{ - StatusCode sc = Converter::initialize(); - if(StatusCode::SUCCESS!=sc) - { - return sc; - } - - m_log = new MsgStream(msgSvc(), "HLTResultByteStreamCnv"); - (*m_log) << MSG::DEBUG<< " initialize " <<endmsg; - - // Check ByteStreamCnvSvc - IService* svc ; - sc = serviceLocator()->getService("ByteStreamCnvSvc", svc); - if(sc != StatusCode::SUCCESS ) { - (*m_log)<<MSG::ERROR << " HLTResultByteStreamCnv: Can't get ByteStreamCnvSvc " <<endmsg; - return sc ; - } - -/* - m_eventAccess = dynamic_cast<IByteStreamEventAccess*> (svc); - if(m_eventAccess == 0 ) { - (*m_log)<<MSG::ERROR<< " HLTResultByteStreamCnv: Can't cast to IByteStreamEventAccess " <<endmsg; - return StatusCode::FAILURE ; - } -*/ - - - //IByteStreamEventAccess* m_eventAccess ; - sc = service("ByteStreamCnvSvc", m_eventAccess); - if(m_eventAccess==0){ - (*m_log)<<MSG::ERROR<< " Cant cast to IByteStreamEventAccess " <<endmsg; - return StatusCode::FAILURE ; - } - - - /* retrieve Tool */ - - IToolSvc* toolSvc; - if(StatusCode::SUCCESS != service("ToolSvc",toolSvc)){ - (*m_log) << MSG::ERROR << " Can't get ToolSvc " << endmsg; - return StatusCode::FAILURE; - } - - std::string toolType = "HLTResultByteStreamTool" ; - if(StatusCode::SUCCESS !=toolSvc->retrieveTool(toolType,m_tool)) - { - (*m_log) << MSG::ERROR << " Can't get ByteStreamTool " << endmsg; - return StatusCode::FAILURE; - } - - return StatusCode::SUCCESS; -} - - -/** - Finalize method gets all necessary services etc. -*/ -template <class ROBF> -StatusCode HLT::HLTResultByteStreamCnv<ROBF>::finalize() -{ - delete m_log; - return StatusCode::SUCCESS; -} - -/** - createObj should create the RDO from bytestream. - */ -template <class ROBF> -StatusCode -HLT::HLTResultByteStreamCnv<ROBF>::createObj(IOpaqueAddress* pAddr, DataObject*& pObj) -{ - - - ByteStreamAddressL1R *pAddrL2; - pAddrL2 = dynamic_cast<ByteStreamAddressL1R*>(pAddr); - if(!pAddrL2) { - (*m_log) << MSG::ERROR << " Cannot cast to ByteStreamAddress " << endmsg ; - return StatusCode::FAILURE; - } - - //HLTResult* result ; - HLTResult* result=new HLTResult(); - -// const ROBF* rob = (const ROBF*) pAddrL2->getPointer(); - const ROBF* rob = pAddrL2->getPointer(); - - // Convert to Object - m_tool->convert(rob, result, m_log); - - (*m_log) << MSG::DEBUG<<" Created Objects "<< *(pAddrL2->par())<<endmsg; - - pObj = StoreGateSvc::asStorable( result ) ; - return StatusCode::SUCCESS; - -} - -/** - createRep should create the bytestream from RDOs. - */ -template <class ROBF> -StatusCode -HLT::HLTResultByteStreamCnv<ROBF>::createRep(DataObject* pObj, IOpaqueAddress*& pAddr) -{ - - RawEvent* re = m_eventAccess->getRawEvent(); - - HLTResult* result; - StoreGateSvc::fromStorable(pObj,result); - if(!result){ - (*m_log) << MSG::ERROR << " Cannot cast to HLTResult " << endmsg ; - return StatusCode::FAILURE; - } - - std::string nm = pObj->registry()->name(); - - ByteStreamAddressL1R* addr = new ByteStreamAddressL1R(classID(),nm,""); - - pAddr = addr; - - return m_tool->convert(result, re, m_log); - -} diff --git a/Trigger/TrigSteer/TrigHLTResultByteStream/TrigHLTResultByteStream/HLTResultMTByteStreamCnv.h b/Trigger/TrigSteer/TrigHLTResultByteStream/TrigHLTResultByteStream/HLTResultMTByteStreamCnv.h index f138432c30f606cdea0245b9bb135f325ff906ac..5280dfd0949a0f21e759b04a702425b315a8f58c 100644 --- a/Trigger/TrigSteer/TrigHLTResultByteStream/TrigHLTResultByteStream/HLTResultMTByteStreamCnv.h +++ b/Trigger/TrigSteer/TrigHLTResultByteStream/TrigHLTResultByteStream/HLTResultMTByteStreamCnv.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #ifndef TRIGHLTRESULTBYTESTREAM_HLTResultMTByteStreamCnv_H @@ -16,9 +16,6 @@ // Gaudi includes #include "GaudiKernel/Converter.h" -// Externals -extern unsigned char ByteStream_StorageType; - namespace HLT { /** @class HLTResultMTByteStreamCnv * @brief ByteStream converter for HLTResultMT @@ -41,7 +38,7 @@ namespace HLT { // ------------------------- Converter definition helpers ------------------ /// Storage type used by this converter - static unsigned char storageType() {return ByteStream_StorageType;} + static long storageType(); /// CLID of the class HLTResultMT converted by this converter static const CLID& classID(); diff --git a/Trigger/TrigSteer/TrigHLTResultByteStream/src/HLTResultByteStreamCnv.cxx b/Trigger/TrigSteer/TrigHLTResultByteStream/src/HLTResultByteStreamCnv.cxx index 7527cbe684831745abcde86763c4b199ac229bb2..25810048b1e68b1b4d277dbc9ac89b44b14769c6 100755 --- a/Trigger/TrigSteer/TrigHLTResultByteStream/src/HLTResultByteStreamCnv.cxx +++ b/Trigger/TrigSteer/TrigHLTResultByteStream/src/HLTResultByteStreamCnv.cxx @@ -1,14 +1,13 @@ // -*- c++ -*- /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #include "TrigHLTResultByteStream/HLTResultByteStreamCnv.h" #include "TrigHLTResultByteStream/HLTResultByteStreamTool.h" #include "ByteStreamData/ROBData.h" -//#include "ByteStreamCnvSvc/ByteStreamCnvSvc.h" #include "ByteStreamCnvSvcBase/ByteStreamCnvSvcBase.h" #include "ByteStreamCnvSvcBase/ByteStreamAddress.h" #include "ByteStreamCnvSvcBase/IROBDataProviderSvc.h" @@ -33,7 +32,7 @@ */ HLT::HLTResultByteStreamCnv::HLTResultByteStreamCnv(ISvcLocator* svcloc) : - Converter(ByteStream_StorageType, classID(),svcloc), + Converter(storageType(), classID(),svcloc), m_log(0), m_tool("HLT::HLTResultByteStreamTool"), m_ByteStreamEventAccess("ByteStreamCnvSvc", "HLTResultByteStreamCnv"), @@ -48,6 +47,11 @@ const CLID& HLT::HLTResultByteStreamCnv::classID() return ClassID_traits<HLT::HLTResult>::ID() ; } +long HLT::HLTResultByteStreamCnv::storageType() +{ + return ByteStreamAddress::storageType(); +} + StatusCode HLT::HLTResultByteStreamCnv::finalize() { delete m_log; diff --git a/Trigger/TrigSteer/TrigHLTResultByteStream/src/HLTResultMTByteStreamCnv.cxx b/Trigger/TrigSteer/TrigHLTResultByteStream/src/HLTResultMTByteStreamCnv.cxx index e4b4f0f51c55f2f13512386cbd8a0032604142ac..8c01b1710da3ebaa48e5a9ed20876fbac9fe7180 100644 --- a/Trigger/TrigSteer/TrigHLTResultByteStream/src/HLTResultMTByteStreamCnv.cxx +++ b/Trigger/TrigSteer/TrigHLTResultByteStream/src/HLTResultMTByteStreamCnv.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ // Trigger includes @@ -25,7 +25,7 @@ // Standard constructor // ============================================================================= HLT::HLTResultMTByteStreamCnv::HLTResultMTByteStreamCnv(ISvcLocator* svcLoc) : - Converter(ByteStream_StorageType, classID(), svcLoc), + Converter(storageType(), classID(), svcLoc), AthMessaging(msgSvc(), "HLTResultMTByteStreamCnv"), m_ByteStreamEventAccess("ByteStreamCnvSvc", "HLTResultMTByteStreamCnv") { m_fullEventAssembler.idMap().setDetId(eformat::TDAQ_HLT); @@ -153,9 +153,13 @@ StatusCode HLT::HLTResultMTByteStreamCnv::createRep(DataObject* pObj, IOpaqueAdd } // ============================================================================= -// CLID +// CLID / storageType // ============================================================================= const CLID& HLT::HLTResultMTByteStreamCnv::classID() { return ClassID_traits<HLT::HLTResultMT>::ID(); } +long HLT::HLTResultMTByteStreamCnv::storageType() +{ + return ByteStreamAddress::storageType(); +} diff --git a/Trigger/TrigSteer/TrigOutputHandling/src/StreamTagMakerTool.cxx b/Trigger/TrigSteer/TrigOutputHandling/src/StreamTagMakerTool.cxx index 760bbce003027c2563526961121a8e1567867a8e..d57eb54ae630416e72dc05b6803fd53269ebac54 100644 --- a/Trigger/TrigSteer/TrigOutputHandling/src/StreamTagMakerTool.cxx +++ b/Trigger/TrigSteer/TrigOutputHandling/src/StreamTagMakerTool.cxx @@ -23,13 +23,7 @@ StatusCode StreamTagMakerTool::initialize() { ATH_CHECK( m_pebDecisionKeys.initialize() ); ATH_CHECK( m_finalChainDecisions.initialize() ); // Transform string->vector<string> map from the ChainToStream property into id->StreamTagInfo map -#if __cplusplus >= 201500L // C++17 needed for structured binding for (const auto& [chainName, streamTagInfoAsStringVec] : m_chainToStreamProperty) { -#else // standard older than C++17 - remove when ATLAS moves to C++17 with gcc8 - for (const auto& chainAndStream: m_chainToStreamProperty) { - const std::string& chainName = chainAndStream.first; - const std::vector<std::string>& streamTagInfoAsStringVec = chainAndStream.second; -#endif if (streamTagInfoAsStringVec.size()!=4) { ATH_MSG_ERROR("Invalid StreamTagInfo object, expected 4 elements {name,type,obeysLumiBlock,forceFullEventBuilding}, but received" << streamTagInfoAsStringVec.size() << " elements for chain " << chainName); @@ -96,16 +90,7 @@ StatusCode StreamTagMakerTool::fill( HLT::HLTResultMT& resultToFill ) const { return StatusCode::FAILURE; } - #if __cplusplus >= 201500L // C++17 needed for structured binding - auto [st_name, st_type, obeysLB, forceFullEvent] = mappingIter->second; - #else // standard older than C++17 - remove when ATLAS moves to C++17 with gcc8 - std::string st_type; - std::string st_name; - bool obeysLB; - bool forceFullEvent; - std::tie(st_name, st_type, obeysLB, forceFullEvent) = mappingIter->second; - #endif - + auto [st_name, st_type, obeysLB, forceFullEvent] = mappingIter->second; std::set<uint32_t> robs; std::set<eformat::SubDetector> subdets; if (!forceFullEvent) { diff --git a/Trigger/TrigT1/L1Topo/L1TopoByteStream/src/L1TopoByteStreamAuxCnv.cxx b/Trigger/TrigT1/L1Topo/L1TopoByteStream/src/L1TopoByteStreamAuxCnv.cxx index f07dcfd148d6852fb93eb0b43c8929b24a429d35..3a51437959444e7fd5961a2a355b7eea01547618 100644 --- a/Trigger/TrigT1/L1Topo/L1TopoByteStream/src/L1TopoByteStreamAuxCnv.cxx +++ b/Trigger/TrigT1/L1Topo/L1TopoByteStream/src/L1TopoByteStreamAuxCnv.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ // ============================================================================ @@ -51,7 +51,7 @@ namespace LVL1BS { L1TopoByteStreamAuxCnv::L1TopoByteStreamAuxCnv(ISvcLocator* svcloc) - : Converter(ByteStream_StorageType, classID(), svcloc), + : Converter(storageType(), classID(), svcloc), AthMessaging(svcloc != 0 ? msgSvc() : 0, "L1TopoByteStreamAuxCnv"), m_name("L1TopoByteStreamAuxCnv"), m_readTool("L1TopoByteStreamTool/L1TopoByteStreamTool") {} @@ -60,11 +60,12 @@ const CLID& L1TopoByteStreamAuxCnv::classID() { return ClassID_traits<xAOD::L1TopoRawDataAuxContainer>::ID(); } +long L1TopoByteStreamAuxCnv::storageType() { + return ByteStreamAddress::storageType(); +} + // Init method gets all necessary services etc. -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif StatusCode L1TopoByteStreamAuxCnv::initialize() { ATH_MSG_DEBUG("Initializing " << m_name << " - package version " << PACKAGE_VERSION); diff --git a/Trigger/TrigT1/L1Topo/L1TopoByteStream/src/L1TopoByteStreamAuxCnv.h b/Trigger/TrigT1/L1Topo/L1TopoByteStream/src/L1TopoByteStreamAuxCnv.h index 92c22406a88897d1f5a3d67418770bfc0f4a31d2..2567286ab785de006a746421144504292b2ef870 100644 --- a/Trigger/TrigT1/L1Topo/L1TopoByteStream/src/L1TopoByteStreamAuxCnv.h +++ b/Trigger/TrigT1/L1Topo/L1TopoByteStream/src/L1TopoByteStreamAuxCnv.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #ifndef TRIGT1CALOBYTESTREAM_L1TOPOBYTESTREAMAUXCNV_H @@ -25,9 +25,6 @@ class StatusCode; template <typename> class CnvFactory; -// Externals -extern long ByteStream_StorageType; - class L1TopoByteStreamTool; namespace LVL1BS { @@ -52,8 +49,8 @@ public: virtual StatusCode createRep(DataObject* pObj, IOpaqueAddress*& pAddr); // Storage type and class ID - virtual long repSvcType() const { return ByteStream_StorageType; } - static long storageType() { return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } + static long storageType(); static const CLID& classID(); diff --git a/Trigger/TrigT1/L1Topo/L1TopoByteStream/src/L1TopoByteStreamCnv.cxx b/Trigger/TrigT1/L1Topo/L1TopoByteStream/src/L1TopoByteStreamCnv.cxx index f57f623cd3a52abe8a9621bf602c246bf2fdc2d1..2acce428a2873ffa454fb9f125eac63e027d845f 100644 --- a/Trigger/TrigT1/L1Topo/L1TopoByteStream/src/L1TopoByteStreamCnv.cxx +++ b/Trigger/TrigT1/L1Topo/L1TopoByteStream/src/L1TopoByteStreamCnv.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ @@ -27,7 +27,7 @@ * base class in the correct way. */ L1TopoByteStreamCnv::L1TopoByteStreamCnv(ISvcLocator* svcloc) - : Converter(ByteStream_StorageType, classID(), svcloc), + : Converter(storageType(), classID(), svcloc), AthMessaging(svcloc != 0 ? msgSvc() : 0, "L1TopoByteStreamCnv"), m_tool("L1TopoByteStreamTool"), m_srcIdMap(0), @@ -53,6 +53,10 @@ const CLID& L1TopoByteStreamCnv::classID() { return ClassID_traits<L1TopoRDOCollection>::ID(); } +long L1TopoByteStreamCnv::storageType() { + return ByteStreamAddress::storageType(); +} + /** * Init method gets all necessary services etc. */ diff --git a/Trigger/TrigT1/L1Topo/L1TopoByteStream/src/L1TopoByteStreamCnv.h b/Trigger/TrigT1/L1Topo/L1TopoByteStream/src/L1TopoByteStreamCnv.h index 56a840733a0dd41fe72b621ab132359f47d080fb..1e3e06f4011557d74e3d0acc6bfe7cba1c17da78 100644 --- a/Trigger/TrigT1/L1Topo/L1TopoByteStream/src/L1TopoByteStreamCnv.h +++ b/Trigger/TrigT1/L1Topo/L1TopoByteStream/src/L1TopoByteStreamCnv.h @@ -1,7 +1,7 @@ // Dear emacs, this is -*- c++ -*- /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #ifndef L1TOPOBYTESTREAM_L1TOPOBYTESTREAMCNV_H @@ -23,9 +23,6 @@ // Forward declaration(s): class L1TopoSrcIdMap; -// External(s): -extern long ByteStream_StorageType; - /** * @short ByteStream converter for the L1TopoRDOCollection * @@ -61,9 +58,9 @@ public: virtual StatusCode createRep(DataObject* pObj, IOpaqueAddress*& pAddr); /// Function needed by the framework - virtual long repSvcType() const { return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } /// Function needed by the framework - static long storageType() { return ByteStream_StorageType; } + static long storageType(); /// Function needed by the framework static const CLID& classID(); diff --git a/Trigger/TrigT1/L1Topo/L1TopoByteStream/src/L1TopoByteStreamxAODCnv.cxx b/Trigger/TrigT1/L1Topo/L1TopoByteStream/src/L1TopoByteStreamxAODCnv.cxx index 054bb441c64e1a689fde3583763b4b2777acf100..1ea5ad3c01b800ca3d5439d5e62e9b3ff7e0ea9d 100644 --- a/Trigger/TrigT1/L1Topo/L1TopoByteStream/src/L1TopoByteStreamxAODCnv.cxx +++ b/Trigger/TrigT1/L1Topo/L1TopoByteStream/src/L1TopoByteStreamxAODCnv.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #include <vector> @@ -31,7 +31,7 @@ namespace LVL1BS { L1TopoByteStreamxAODCnv::L1TopoByteStreamxAODCnv(ISvcLocator* svcloc) - : Converter(ByteStream_StorageType, classID(), svcloc), + : Converter(storageType(), classID(), svcloc), AthMessaging(svcloc != 0 ? msgSvc() : 0, "L1TopoByteStreamxAODCnv"), m_name("L1TopoByteStreamxAODCnv") {} @@ -41,11 +41,11 @@ const CLID& L1TopoByteStreamxAODCnv::classID() { return ClassID_traits<xAOD::L1TopoRawDataContainer>::ID(); } -// Init method gets all necessary services etc. +long L1TopoByteStreamxAODCnv::storageType() { + return ByteStreamAddress::storageType(); +} -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif +// Init method gets all necessary services etc. StatusCode L1TopoByteStreamxAODCnv::initialize() { ATH_MSG_DEBUG("Initializing " << m_name << " - package version " diff --git a/Trigger/TrigT1/L1Topo/L1TopoByteStream/src/L1TopoByteStreamxAODCnv.h b/Trigger/TrigT1/L1Topo/L1TopoByteStream/src/L1TopoByteStreamxAODCnv.h index 56286fb3802de7ba538452f8cbbf4feebccb0889..4a42a813844690ca5e3b7b96fd797c75f4345298 100644 --- a/Trigger/TrigT1/L1Topo/L1TopoByteStream/src/L1TopoByteStreamxAODCnv.h +++ b/Trigger/TrigT1/L1Topo/L1TopoByteStream/src/L1TopoByteStreamxAODCnv.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #ifndef TRIGT1CALOBYTESTREAM_L1TOPOBYTESTREAMXAODCNV_H @@ -23,8 +23,6 @@ class StatusCode; template <typename> class CnvFactory; class StoreGateSvc; -// Externals -extern long ByteStream_StorageType; namespace LVL1BS { /** ByteStream converter for CmxTob. @@ -47,8 +45,8 @@ public: virtual StatusCode createRep(DataObject* pObj, IOpaqueAddress*& pAddr); // Storage type and class ID - virtual long repSvcType() const { return ByteStream_StorageType; } - static long storageType() { return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } + static long storageType(); static const CLID& classID(); diff --git a/Trigger/TrigT1/L1Topo/L1TopoSimulation/src/L1TopoSimulation.cxx b/Trigger/TrigT1/L1Topo/L1TopoSimulation/src/L1TopoSimulation.cxx index f3b76ad4a015e78fc477d56f1addacf34e61af17..7ee1bc2ae4c61d85133bafd6e9de0e276de827cd 100644 --- a/Trigger/TrigT1/L1Topo/L1TopoSimulation/src/L1TopoSimulation.cxx +++ b/Trigger/TrigT1/L1Topo/L1TopoSimulation/src/L1TopoSimulation.cxx @@ -72,7 +72,6 @@ L1TopoSimulation::L1TopoSimulation(const std::string &name, ISvcLocator *pSvcLoc m_jetInputProvider("LVL1::JetInputProvider/JetInputProvider", this), m_energyInputProvider("LVL1::EnergyInputProvider/EnergyInputProvider", this), m_muonInputProvider("LVL1::MuonInputProvider/MuonInputProvider", this), -// m_EventInfoKey("EventInfo"), m_topoSteering( unique_ptr<TCS::TopoSteering>(new TCS::TopoSteering()) ) { declareProperty( "TrigConfigSvc", m_l1topoConfigSvc, "Service to provide the L1Topo menu"); @@ -138,7 +137,7 @@ L1TopoSimulation::initialize() { CHECK(m_topoCTPLocation.initialize()); CHECK(m_topoOverflowCTPLocation.initialize()); -// CHECK(m_EventInfoKey.initialize()); + CHECK(m_EventInfoKey.initialize()); ATH_MSG_DEBUG("Prescale factor set to " << m_prescale); ATH_MSG_DEBUG("PrescaleDAQROBAccess factor set to " << m_prescaleForDAQROBAccess); @@ -249,12 +248,9 @@ L1TopoSimulation::execute() { TCS::TopoInputEvent & inputEvent = m_topoSteering->inputEvent(); // Event Info -//ReadHandle doesn't seem to work yet for eventinfo -// SG::ReadHandle< EventInfo > evt(m_EventInfoKey); -// CHECK(evt.isValid()); - const EventInfo *evt; - CHECK(evtStore()->retrieve(evt)); - inputEvent.setEventInfo(evt->event_ID()->run_number(),evt->event_ID()->event_number(),evt->event_ID()->lumi_block(),evt->event_ID()->bunch_crossing_id()); + SG::ReadHandle< xAOD::EventInfo > evt(m_EventInfoKey); + + inputEvent.setEventInfo(evt->runNumber(),evt->eventNumber(),evt->lumiBlock(),evt->bcid()); // EM TAU CHECK(m_emtauInputProvider->fillTopoInputEvent(inputEvent)); diff --git a/Trigger/TrigT1/L1Topo/L1TopoSimulation/src/L1TopoSimulation.h b/Trigger/TrigT1/L1Topo/L1TopoSimulation/src/L1TopoSimulation.h index aa554494b412ea2af42e58a4be1c766bd0ba7738..1b5064e5d175ec779f9f089fa21c5430753499ab 100644 --- a/Trigger/TrigT1/L1Topo/L1TopoSimulation/src/L1TopoSimulation.h +++ b/Trigger/TrigT1/L1Topo/L1TopoSimulation/src/L1TopoSimulation.h @@ -10,8 +10,7 @@ #include "AthenaBaseComps/AthAlgorithm.h" #include "TrigInterfaces/IMonitoredAlgo.h" -#include "EventInfo/EventInfo.h" -#include "EventInfo/EventID.h" +#include "xAODEventInfo/EventInfo.h" #include "GaudiKernel/ServiceHandle.h" #include "GaudiKernel/ToolHandle.h" @@ -20,6 +19,8 @@ #include "TrigT1Interfaces/FrontPanelCTP.h" +#include "StoreGate/ReadHandleKey.h" + class TH1; class IMonitorToolBase; class ITHistSvc; @@ -85,7 +86,7 @@ namespace LVL1 { BooleanProperty m_enableInputDump { false }; // for enabling input dumping BooleanProperty m_enableBitwise { false }; // for enabling bitwise algorithms StringProperty m_inputDumpFile { "inputdump.txt" }; // input dump file -// SG::ReadHandleKey<EventInfo> m_EventInfoKey; + SG::ReadHandleKey<xAOD::EventInfo> m_EventInfoKey{this,"EventInfoKey","EventInfo","RHK for EventInfo"}; SG::WriteHandleKey<LVL1::FrontPanelCTP> m_topoCTPLocation { "" }; ///< SG key of decision bits for CTP SG::WriteHandleKey<LVL1::FrontPanelCTP> m_topoOverflowCTPLocation { "" }; ///< SG key of overflow bits for CTP int m_topoOutputLevel{TrigConf::MSGTC::WARNING}; // property to set the outputlevel of the topo algorithms diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/CpByteStreamCnv.cxx b/Trigger/TrigT1/TrigT1CaloByteStream/src/CpByteStreamCnv.cxx old mode 100755 new mode 100644 index 4e7d20f1e3dc7d26784257f9793521730555e847..e93d5ae36e174e267e513e79ee120e4bcd3aad21 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/CpByteStreamCnv.cxx +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/CpByteStreamCnv.cxx @@ -30,7 +30,7 @@ namespace LVL1BS { CpByteStreamCnv::CpByteStreamCnv( ISvcLocator* svcloc ) - : Converter( ByteStream_StorageType, classID(), svcloc ), + : Converter( storageType(), classID(), svcloc ), m_name("CpByteStreamCnv"), m_tool("LVL1BS::CpByteStreamTool/CpByteStreamTool"), m_ByteStreamEventAccess("ByteStreamCnvSvc", m_name), @@ -49,11 +49,13 @@ const CLID& CpByteStreamCnv::classID() return ClassID_traits<LVL1::CPBSCollection>::ID(); } +long CpByteStreamCnv::storageType() +{ + return ByteStreamAddress::storageType(); +} + // Init method gets all necessary services etc. -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif StatusCode CpByteStreamCnv::initialize() { diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/CpByteStreamCnv.h b/Trigger/TrigT1/TrigT1CaloByteStream/src/CpByteStreamCnv.h old mode 100755 new mode 100644 index 361ded10ce81f4b1354783200b88cb74b770fec4..3f995f7dea0dc807147e21c95321457daa57a1f0 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/CpByteStreamCnv.h +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/CpByteStreamCnv.h @@ -21,8 +21,6 @@ class StatusCode; template <typename> class CnvFactory; -// Externals -extern long ByteStream_StorageType; namespace LVL1BS { @@ -50,8 +48,8 @@ public: virtual StatusCode createRep(DataObject* pObj, IOpaqueAddress*& pAddr); // Storage type and class ID - virtual long repSvcType() const { return ByteStream_StorageType;} - static long storageType(){ return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } + static long storageType(); static const CLID& classID(); private: diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/CpByteStreamTool.cxx b/Trigger/TrigT1/TrigT1CaloByteStream/src/CpByteStreamTool.cxx index 73bcb78f9632e6c3485a27ef207ddcb552a9043e..206890ac88dc95991a01148cae49fa175aeb6c62 100755 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/CpByteStreamTool.cxx +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/CpByteStreamTool.cxx @@ -92,9 +92,6 @@ CpByteStreamTool::~CpByteStreamTool() // Initialize -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif StatusCode CpByteStreamTool::initialize() { diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/CpByteStreamV1Cnv.cxx b/Trigger/TrigT1/TrigT1CaloByteStream/src/CpByteStreamV1Cnv.cxx old mode 100755 new mode 100644 index d74d1ed1f7e5aa0ed6a1015ab85bea657abc1e0d..38b8c76ceca91d324ffa1153335acaca4ee7daa2 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/CpByteStreamV1Cnv.cxx +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/CpByteStreamV1Cnv.cxx @@ -30,7 +30,7 @@ namespace LVL1BS { CpByteStreamV1Cnv::CpByteStreamV1Cnv( ISvcLocator* svcloc ) - : Converter( ByteStream_StorageType, classID(), svcloc ), + : Converter( storageType(), classID(), svcloc ), m_name("CpByteStreamV1Cnv"), m_tool("LVL1BS::CpByteStreamV1Tool/CpByteStreamV1Tool"), m_ByteStreamEventAccess("ByteStreamCnvSvc", m_name), @@ -49,11 +49,13 @@ const CLID& CpByteStreamV1Cnv::classID() return ClassID_traits<LVL1::CPBSCollectionV1>::ID(); } +long CpByteStreamV1Cnv::storageType() +{ + return ByteStreamAddress::storageType(); +} + // Init method gets all necessary services etc. -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif StatusCode CpByteStreamV1Cnv::initialize() { diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/CpByteStreamV1Cnv.h b/Trigger/TrigT1/TrigT1CaloByteStream/src/CpByteStreamV1Cnv.h old mode 100755 new mode 100644 index 533a95936a251423d3bf4650a07decd7312a6073..ecc81b558ff1080fab980573f769cda50ea68a11 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/CpByteStreamV1Cnv.h +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/CpByteStreamV1Cnv.h @@ -21,8 +21,6 @@ class StatusCode; template <typename> class CnvFactory; -// Externals -extern long ByteStream_StorageType; namespace LVL1BS { @@ -44,8 +42,8 @@ public: virtual StatusCode createRep(DataObject* pObj, IOpaqueAddress*& pAddr); // Storage type and class ID - virtual long repSvcType() const { return ByteStream_StorageType;} - static long storageType(){ return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } + static long storageType(); static const CLID& classID(); private: diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/CpByteStreamV1Tool.cxx b/Trigger/TrigT1/TrigT1CaloByteStream/src/CpByteStreamV1Tool.cxx index 72f6127c1af30a1938e038add25cc6e8a5f7eef5..f0e5e78582629b67bed6b238f5252c03ca575f2f 100755 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/CpByteStreamV1Tool.cxx +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/CpByteStreamV1Tool.cxx @@ -98,9 +98,6 @@ CpByteStreamV1Tool::~CpByteStreamV1Tool() // Initialize -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif StatusCode CpByteStreamV1Tool::initialize() { diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/CpByteStreamV2Cnv.cxx b/Trigger/TrigT1/TrigT1CaloByteStream/src/CpByteStreamV2Cnv.cxx old mode 100755 new mode 100644 index 3767d88840795961ca141dd5488f6c04e8180fd9..569094b68d74c159e6d9a313a0e375f97d8de82f --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/CpByteStreamV2Cnv.cxx +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/CpByteStreamV2Cnv.cxx @@ -30,7 +30,7 @@ namespace LVL1BS { CpByteStreamV2Cnv::CpByteStreamV2Cnv( ISvcLocator* svcloc ) - : Converter( ByteStream_StorageType, classID(), svcloc ), + : Converter( storageType(), classID(), svcloc ), m_name("CpByteStreamV2Cnv"), m_tool("LVL1BS::CpByteStreamV2Tool/CpByteStreamV2Tool"), m_ByteStreamEventAccess("ByteStreamCnvSvc", m_name), @@ -49,11 +49,13 @@ const CLID& CpByteStreamV2Cnv::classID() return ClassID_traits<LVL1::CPBSCollectionV2>::ID(); } +long CpByteStreamV2Cnv::storageType() +{ + return ByteStreamAddress::storageType(); +} + // Init method gets all necessary services etc. -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif StatusCode CpByteStreamV2Cnv::initialize() { diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/CpByteStreamV2Cnv.h b/Trigger/TrigT1/TrigT1CaloByteStream/src/CpByteStreamV2Cnv.h old mode 100755 new mode 100644 index 777ce4366ca569211055409d655c925903af9d83..1ea5ead440796023be35bc3d45958b1ea7c1f48f --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/CpByteStreamV2Cnv.h +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/CpByteStreamV2Cnv.h @@ -21,8 +21,6 @@ class StatusCode; template <typename> class CnvFactory; -// Externals -extern long ByteStream_StorageType; namespace LVL1BS { @@ -44,8 +42,8 @@ public: virtual StatusCode createRep(DataObject* pObj, IOpaqueAddress*& pAddr); // Storage type and class ID - virtual long repSvcType() const { return ByteStream_StorageType;} - static long storageType(){ return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } + static long storageType(); static const CLID& classID(); private: diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/CpByteStreamV2Tool.cxx b/Trigger/TrigT1/TrigT1CaloByteStream/src/CpByteStreamV2Tool.cxx index aa146ebe7e0fa4649bbae00a8cc6ef0a7703ed73..7a4330c21e977ba9466ff1353a88f7ae729eb597 100755 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/CpByteStreamV2Tool.cxx +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/CpByteStreamV2Tool.cxx @@ -101,9 +101,6 @@ CpByteStreamV2Tool::~CpByteStreamV2Tool() // Initialize -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif StatusCode CpByteStreamV2Tool::initialize() { diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/CpReadByteStreamCnv.h b/Trigger/TrigT1/TrigT1CaloByteStream/src/CpReadByteStreamCnv.h old mode 100755 new mode 100644 index b5968927e5a47e4b03f7afa4e809483fcb6e6d70..7a745443ff47d3829da373f87f32a6e26bc8212e --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/CpReadByteStreamCnv.h +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/CpReadByteStreamCnv.h @@ -21,8 +21,6 @@ class StatusCode; template <typename> class CnvFactory; -// Externals -extern long ByteStream_StorageType; namespace LVL1BS { @@ -51,8 +49,8 @@ public: virtual StatusCode createObj(IOpaqueAddress* pAddr, DataObject*& pObj); // Storage type and class ID - virtual long repSvcType() const { return ByteStream_StorageType;} - static long storageType(){ return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } + static long storageType(); static const CLID& classID(); private: diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/CpReadByteStreamCnv.icc b/Trigger/TrigT1/TrigT1CaloByteStream/src/CpReadByteStreamCnv.icc old mode 100755 new mode 100644 index 5b7606dd1c8abff1665a2076c296cdccb218d2c0..303e0273900f4349c6715822ed6cb93cfe7bec08 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/CpReadByteStreamCnv.icc +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/CpReadByteStreamCnv.icc @@ -27,7 +27,7 @@ namespace LVL1BS { template <typename Container> CpReadByteStreamCnv<Container>::CpReadByteStreamCnv( ISvcLocator* svcloc ) - : Converter( ByteStream_StorageType, classID(), svcloc ), + : Converter( storageType(), classID(), svcloc ), m_name("CpReadByteStreamCnv"), m_tool("LVL1BS::CpByteStreamTool/CpByteStreamTool"), m_robDataProvider("ROBDataProviderSvc", m_name), @@ -48,11 +48,14 @@ const CLID& CpReadByteStreamCnv<Container>::classID() return ClassID_traits<Container>::ID(); } +template <typename Container> +long CpReadByteStreamCnv<Container>::storageType() +{ + return ByteStreamAddress::storageType(); +} + // Init method gets all necessary services etc. -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif template <typename Container> StatusCode CpReadByteStreamCnv<Container>::initialize() diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/CpReadByteStreamV1Cnv.h b/Trigger/TrigT1/TrigT1CaloByteStream/src/CpReadByteStreamV1Cnv.h old mode 100755 new mode 100644 index d4ac573ef3d7ec83c12c623a49e3c42a7e8d1026..bf34a314dd9457c8caa8e6f18af940f89692f047 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/CpReadByteStreamV1Cnv.h +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/CpReadByteStreamV1Cnv.h @@ -21,8 +21,6 @@ class StatusCode; template <typename> class CnvFactory; -// Externals -extern long ByteStream_StorageType; namespace LVL1BS { @@ -45,8 +43,8 @@ public: virtual StatusCode createObj(IOpaqueAddress* pAddr, DataObject*& pObj); // Storage type and class ID - virtual long repSvcType() const { return ByteStream_StorageType;} - static long storageType(){ return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } + static long storageType(); static const CLID& classID(); private: diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/CpReadByteStreamV1Cnv.icc b/Trigger/TrigT1/TrigT1CaloByteStream/src/CpReadByteStreamV1Cnv.icc old mode 100755 new mode 100644 index d9ed99c4f0bde07eee9f5f1a94407321c46c5462..eb9b9eeceb1c204b43947dd0fd766d156912f130 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/CpReadByteStreamV1Cnv.icc +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/CpReadByteStreamV1Cnv.icc @@ -27,7 +27,7 @@ namespace LVL1BS { template <typename Container> CpReadByteStreamV1Cnv<Container>::CpReadByteStreamV1Cnv( ISvcLocator* svcloc ) - : Converter( ByteStream_StorageType, classID(), svcloc ), + : Converter( storageType(), classID(), svcloc ), m_name("CpReadByteStreamV1Cnv"), m_tool("LVL1BS::CpByteStreamV1Tool/CpByteStreamV1Tool"), m_robDataProvider("ROBDataProviderSvc", m_name), @@ -48,11 +48,14 @@ const CLID& CpReadByteStreamV1Cnv<Container>::classID() return ClassID_traits<Container>::ID(); } +template <typename Container> +long CpReadByteStreamV1Cnv<Container>::storageType() +{ + return ByteStreamAddress::storageType(); +} + // Init method gets all necessary services etc. -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif template <typename Container> StatusCode CpReadByteStreamV1Cnv<Container>::initialize() diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/CpReadByteStreamV1V2Cnv.cxx b/Trigger/TrigT1/TrigT1CaloByteStream/src/CpReadByteStreamV1V2Cnv.cxx old mode 100755 new mode 100644 index 99b584b0b51c411e0514aaef1e76d35d954b39b4..9a5b91ff89914788fcc164694c10567c73ce15ac --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/CpReadByteStreamV1V2Cnv.cxx +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/CpReadByteStreamV1V2Cnv.cxx @@ -33,7 +33,7 @@ namespace LVL1BS { CpReadByteStreamV1V2Cnv::CpReadByteStreamV1V2Cnv( ISvcLocator* svcloc ) - : Converter( ByteStream_StorageType, classID(), svcloc ), + : Converter( storageType(), classID(), svcloc ), m_name("CpReadByteStreamV1V2Cnv"), m_tool1("LVL1BS::CpByteStreamV1Tool/CpByteStreamV1Tool"), m_tool2("LVL1BS::CpByteStreamV2Tool/CpByteStreamV2Tool"), @@ -53,11 +53,13 @@ const CLID& CpReadByteStreamV1V2Cnv::classID() return ClassID_traits<DataVector<LVL1::CPMTower> >::ID(); } +long CpReadByteStreamV1V2Cnv::storageType() +{ + return ByteStreamAddress::storageType(); +} + // Init method gets all necessary services etc. -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif StatusCode CpReadByteStreamV1V2Cnv::initialize() { diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/CpReadByteStreamV1V2Cnv.h b/Trigger/TrigT1/TrigT1CaloByteStream/src/CpReadByteStreamV1V2Cnv.h old mode 100755 new mode 100644 index 874cfcca17b4d8ff4d517c261b28a554a2d338e6..6b2087b61b043a5a41a74cc290334ef251ce7421 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/CpReadByteStreamV1V2Cnv.h +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/CpReadByteStreamV1V2Cnv.h @@ -22,8 +22,6 @@ class StatusCode; template <typename> class CnvFactory; -// Externals -extern long ByteStream_StorageType; namespace LVL1BS { @@ -49,8 +47,8 @@ public: virtual StatusCode createObj(IOpaqueAddress* pAddr, DataObject*& pObj); // Storage type and class ID - virtual long repSvcType() const { return ByteStream_StorageType;} - static long storageType(){ return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } + static long storageType(); static const CLID& classID(); private: diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/CpReadByteStreamV2Cnv.h b/Trigger/TrigT1/TrigT1CaloByteStream/src/CpReadByteStreamV2Cnv.h old mode 100755 new mode 100644 index ffef3abf3a7921e67c4253e8d15c35713050b8c8..ee6fa1ac8ed3e971bd964e06b30325cf22a957e5 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/CpReadByteStreamV2Cnv.h +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/CpReadByteStreamV2Cnv.h @@ -21,8 +21,6 @@ class StatusCode; template <typename> class CnvFactory; -// Externals -extern long ByteStream_StorageType; namespace LVL1BS { @@ -45,8 +43,8 @@ public: virtual StatusCode createObj(IOpaqueAddress* pAddr, DataObject*& pObj); // Storage type and class ID - virtual long repSvcType() const { return ByteStream_StorageType;} - static long storageType(){ return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } + static long storageType(); static const CLID& classID(); private: diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/CpReadByteStreamV2Cnv.icc b/Trigger/TrigT1/TrigT1CaloByteStream/src/CpReadByteStreamV2Cnv.icc old mode 100755 new mode 100644 index c772bbf604b5c13ab1b0f988d02556e0d281914f..404d8925284be9b70a21825ea3e31efde2b31a90 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/CpReadByteStreamV2Cnv.icc +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/CpReadByteStreamV2Cnv.icc @@ -27,7 +27,7 @@ namespace LVL1BS { template <typename Container> CpReadByteStreamV2Cnv<Container>::CpReadByteStreamV2Cnv( ISvcLocator* svcloc ) - : Converter( ByteStream_StorageType, classID(), svcloc ), + : Converter( storageType(), classID(), svcloc ), m_name("CpReadByteStreamV2Cnv"), m_tool("LVL1BS::CpByteStreamV2Tool/CpByteStreamV2Tool"), m_robDataProvider("ROBDataProviderSvc", m_name), @@ -48,11 +48,14 @@ const CLID& CpReadByteStreamV2Cnv<Container>::classID() return ClassID_traits<Container>::ID(); } +template <typename Container> +long CpReadByteStreamV2Cnv<Container>::storageType() +{ + return ByteStreamAddress::storageType(); +} + // Init method gets all necessary services etc. -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif template <typename Container> StatusCode CpReadByteStreamV2Cnv<Container>::initialize() diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/CpmRoiByteStreamCnv.cxx b/Trigger/TrigT1/TrigT1CaloByteStream/src/CpmRoiByteStreamCnv.cxx old mode 100755 new mode 100644 index 36a62aed64717bafb3cd8f5b683725c716d3c7ab..daedba54f63a2a071e3a449305a673013f2d82e0 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/CpmRoiByteStreamCnv.cxx +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/CpmRoiByteStreamCnv.cxx @@ -32,7 +32,7 @@ namespace LVL1BS { CpmRoiByteStreamCnv::CpmRoiByteStreamCnv( ISvcLocator* svcloc ) - : Converter( ByteStream_StorageType, classID(), svcloc ), + : Converter( storageType(), classID(), svcloc ), m_name("CpmRoiByteStreamCnv"), m_tool("LVL1BS::CpmRoiByteStreamTool/CpmRoiByteStreamTool"), m_robDataProvider("ROBDataProviderSvc", m_name), @@ -52,11 +52,13 @@ const CLID& CpmRoiByteStreamCnv::classID() return ClassID_traits<DataVector<LVL1::CPMRoI> >::ID(); } +long CpmRoiByteStreamCnv::storageType() +{ + return ByteStreamAddress::storageType(); +} + // Init method gets all necessary services etc. -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif StatusCode CpmRoiByteStreamCnv::initialize() { diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/CpmRoiByteStreamCnv.h b/Trigger/TrigT1/TrigT1CaloByteStream/src/CpmRoiByteStreamCnv.h old mode 100755 new mode 100644 index 0626179e1dd3d8e0b6ce698bfd9b96f168aa97eb..bfab7240320793db37fef2fca7edadba6ce45b1f --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/CpmRoiByteStreamCnv.h +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/CpmRoiByteStreamCnv.h @@ -22,8 +22,6 @@ class StatusCode; template <typename> class CnvFactory; -// Externals -extern long ByteStream_StorageType; namespace LVL1BS { @@ -53,8 +51,8 @@ public: virtual StatusCode createRep(DataObject* pObj, IOpaqueAddress*& pAddr); // Storage type and class ID - virtual long repSvcType() const { return ByteStream_StorageType;} - static long storageType(){ return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } + static long storageType(); static const CLID& classID(); private: diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/CpmRoiByteStreamTool.cxx b/Trigger/TrigT1/TrigT1CaloByteStream/src/CpmRoiByteStreamTool.cxx index 165bbb8c1dfb027f910e1899ff6fbef31f63a65e..2ab9fd571828b86b8b8bf2211df82f35cf2a2593 100755 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/CpmRoiByteStreamTool.cxx +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/CpmRoiByteStreamTool.cxx @@ -75,9 +75,6 @@ CpmRoiByteStreamTool::~CpmRoiByteStreamTool() // Initialize -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif StatusCode CpmRoiByteStreamTool::initialize() { diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/CpmRoiByteStreamV1Cnv.cxx b/Trigger/TrigT1/TrigT1CaloByteStream/src/CpmRoiByteStreamV1Cnv.cxx old mode 100755 new mode 100644 index acd6f32bae00948ad60c328c7d907610d692a180..44878ee3482062c9b47cbcd0b163ba88dd23e72b --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/CpmRoiByteStreamV1Cnv.cxx +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/CpmRoiByteStreamV1Cnv.cxx @@ -32,7 +32,7 @@ namespace LVL1BS { CpmRoiByteStreamV1Cnv::CpmRoiByteStreamV1Cnv( ISvcLocator* svcloc ) - : Converter( ByteStream_StorageType, classID(), svcloc ), + : Converter( storageType(), classID(), svcloc ), m_name("CpmRoiByteStreamV1Cnv"), m_tool("LVL1BS::CpmRoiByteStreamV1Tool/CpmRoiByteStreamV1Tool"), m_robDataProvider("ROBDataProviderSvc", m_name), @@ -52,11 +52,13 @@ const CLID& CpmRoiByteStreamV1Cnv::classID() return ClassID_traits<DataVector<LVL1::CPMRoI> >::ID(); } +long CpmRoiByteStreamV1Cnv::storageType() +{ + return ByteStreamAddress::storageType(); +} + // Init method gets all necessary services etc. -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif StatusCode CpmRoiByteStreamV1Cnv::initialize() { diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/CpmRoiByteStreamV1Cnv.h b/Trigger/TrigT1/TrigT1CaloByteStream/src/CpmRoiByteStreamV1Cnv.h old mode 100755 new mode 100644 index 3a39bec7b0fbf94dec694a1e2ee4d689fd2ade98..5f5463f2d7278071618337980350b304ed1f1663 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/CpmRoiByteStreamV1Cnv.h +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/CpmRoiByteStreamV1Cnv.h @@ -22,8 +22,6 @@ class StatusCode; template <typename> class CnvFactory; -// Externals -extern long ByteStream_StorageType; namespace LVL1BS { @@ -47,8 +45,8 @@ public: virtual StatusCode createRep(DataObject* pObj, IOpaqueAddress*& pAddr); // Storage type and class ID - virtual long repSvcType() const { return ByteStream_StorageType;} - static long storageType(){ return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } + static long storageType(); static const CLID& classID(); private: diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/CpmRoiByteStreamV1Tool.cxx b/Trigger/TrigT1/TrigT1CaloByteStream/src/CpmRoiByteStreamV1Tool.cxx index 17f8a15f775ddc5d0961aa6728efd10844064915..5778110f761ed0852b7030eb60d8e82ccd052540 100755 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/CpmRoiByteStreamV1Tool.cxx +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/CpmRoiByteStreamV1Tool.cxx @@ -81,9 +81,6 @@ CpmRoiByteStreamV1Tool::~CpmRoiByteStreamV1Tool() // Initialize -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif StatusCode CpmRoiByteStreamV1Tool::initialize() { diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/CpmRoiByteStreamV2Cnv.cxx b/Trigger/TrigT1/TrigT1CaloByteStream/src/CpmRoiByteStreamV2Cnv.cxx old mode 100755 new mode 100644 index 34387b8f8ee04103b7214692b58dbe2847acc0f1..a34558df2e8b0aeefd5536853c07f4cc9897e2d0 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/CpmRoiByteStreamV2Cnv.cxx +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/CpmRoiByteStreamV2Cnv.cxx @@ -32,7 +32,7 @@ namespace LVL1BS { CpmRoiByteStreamV2Cnv::CpmRoiByteStreamV2Cnv( ISvcLocator* svcloc ) - : Converter( ByteStream_StorageType, classID(), svcloc ), + : Converter( storageType(), classID(), svcloc ), m_name("CpmRoiByteStreamV2Cnv"), m_tool("LVL1BS::CpmRoiByteStreamV2Tool/CpmRoiByteStreamV2Tool"), m_robDataProvider("ROBDataProviderSvc", m_name), @@ -52,11 +52,13 @@ const CLID& CpmRoiByteStreamV2Cnv::classID() return ClassID_traits<DataVector<LVL1::CPMTobRoI> >::ID(); } +long CpmRoiByteStreamV2Cnv::storageType() +{ + return ByteStreamAddress::storageType(); +} + // Init method gets all necessary services etc. -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif StatusCode CpmRoiByteStreamV2Cnv::initialize() { diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/CpmRoiByteStreamV2Cnv.h b/Trigger/TrigT1/TrigT1CaloByteStream/src/CpmRoiByteStreamV2Cnv.h old mode 100755 new mode 100644 index 84f842664b373b703decde9a0febbfac38f77b21..6f80a49e0af6b2c81b6f4af84aefba2ad1297ca1 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/CpmRoiByteStreamV2Cnv.h +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/CpmRoiByteStreamV2Cnv.h @@ -22,8 +22,6 @@ class StatusCode; template <typename> class CnvFactory; -// Externals -extern long ByteStream_StorageType; namespace LVL1BS { @@ -47,8 +45,8 @@ public: virtual StatusCode createRep(DataObject* pObj, IOpaqueAddress*& pAddr); // Storage type and class ID - virtual long repSvcType() const { return ByteStream_StorageType;} - static long storageType(){ return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } + static long storageType(); static const CLID& classID(); private: diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/CpmRoiByteStreamV2Tool.cxx b/Trigger/TrigT1/TrigT1CaloByteStream/src/CpmRoiByteStreamV2Tool.cxx index 3acc6eea1936883aa2d0d7fdcc0d27e833fefe40..270c25c0818764ad40e0c783c15a892c8b1a91cf 100755 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/CpmRoiByteStreamV2Tool.cxx +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/CpmRoiByteStreamV2Tool.cxx @@ -86,9 +86,6 @@ CpmRoiByteStreamV2Tool::~CpmRoiByteStreamV2Tool() // Initialize -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif StatusCode CpmRoiByteStreamV2Tool::initialize() { diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/JepByteStreamCnv.cxx b/Trigger/TrigT1/TrigT1CaloByteStream/src/JepByteStreamCnv.cxx old mode 100755 new mode 100644 index be58aba4a706da52021c90c0ab0a05fd10aa51e9..b1bb4cebd7d9df3f348c4c420c5f20760fecc6e3 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/JepByteStreamCnv.cxx +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/JepByteStreamCnv.cxx @@ -30,7 +30,7 @@ namespace LVL1BS { JepByteStreamCnv::JepByteStreamCnv( ISvcLocator* svcloc ) - : Converter( ByteStream_StorageType, classID(), svcloc ), + : Converter( storageType(), classID(), svcloc ), m_name("JepByteStreamCnv"), m_tool("LVL1BS::JepByteStreamTool/JepByteStreamTool"), m_ByteStreamEventAccess("ByteStreamCnvSvc", m_name), @@ -49,11 +49,13 @@ const CLID& JepByteStreamCnv::classID() return ClassID_traits<LVL1::JEPBSCollection>::ID(); } +long JepByteStreamCnv::storageType() +{ + return ByteStreamAddress::storageType(); +} + // Init method gets all necessary services etc. -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif StatusCode JepByteStreamCnv::initialize() { diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/JepByteStreamCnv.h b/Trigger/TrigT1/TrigT1CaloByteStream/src/JepByteStreamCnv.h old mode 100755 new mode 100644 index 36b4009d76208f548082464572acffd50868009d..c09e547c2bd74819aada8a971257036fb10cbfb4 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/JepByteStreamCnv.h +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/JepByteStreamCnv.h @@ -21,8 +21,6 @@ class StatusCode; template <typename> class CnvFactory; -// Externals -extern long ByteStream_StorageType; namespace LVL1BS { @@ -50,8 +48,8 @@ public: virtual StatusCode createRep(DataObject* pObj, IOpaqueAddress*& pAddr); // Storage type and class ID - virtual long repSvcType() const { return ByteStream_StorageType;} - static long storageType(){ return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } + static long storageType(); static const CLID& classID(); private: diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/JepByteStreamTool.cxx b/Trigger/TrigT1/TrigT1CaloByteStream/src/JepByteStreamTool.cxx index 5d2a3274cee2879b32f0c8c94016dd31290cf9fb..87a9bd94b0d5400a9e9266e7b57d64b3a19e4a98 100755 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/JepByteStreamTool.cxx +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/JepByteStreamTool.cxx @@ -97,9 +97,6 @@ JepByteStreamTool::~JepByteStreamTool() // Initialize -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif StatusCode JepByteStreamTool::initialize() { diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/JepByteStreamV1Cnv.cxx b/Trigger/TrigT1/TrigT1CaloByteStream/src/JepByteStreamV1Cnv.cxx old mode 100755 new mode 100644 index ff5e4487c02a866bfbe7dfccc37834c5ca9f57c8..acd48877dd647e82c900c1c27675dc0fc568a3e9 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/JepByteStreamV1Cnv.cxx +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/JepByteStreamV1Cnv.cxx @@ -30,7 +30,7 @@ namespace LVL1BS { JepByteStreamV1Cnv::JepByteStreamV1Cnv( ISvcLocator* svcloc ) - : Converter( ByteStream_StorageType, classID(), svcloc ), + : Converter( storageType(), classID(), svcloc ), m_name("JepByteStreamV1Cnv"), m_tool("LVL1BS::JepByteStreamV1Tool/JepByteStreamV1Tool"), m_ByteStreamEventAccess("ByteStreamCnvSvc", m_name), @@ -49,11 +49,13 @@ const CLID& JepByteStreamV1Cnv::classID() return ClassID_traits<LVL1::JEPBSCollectionV1>::ID(); } +long JepByteStreamV1Cnv::storageType() +{ + return ByteStreamAddress::storageType(); +} + // Init method gets all necessary services etc. -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif StatusCode JepByteStreamV1Cnv::initialize() { diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/JepByteStreamV1Cnv.h b/Trigger/TrigT1/TrigT1CaloByteStream/src/JepByteStreamV1Cnv.h old mode 100755 new mode 100644 index 28ade26af1993f485c1c140c6666ad8c2751daeb..b7242d9814287909cdb4520eb63439fd45e7ec1a --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/JepByteStreamV1Cnv.h +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/JepByteStreamV1Cnv.h @@ -21,8 +21,6 @@ class StatusCode; template <typename> class CnvFactory; -// Externals -extern long ByteStream_StorageType; namespace LVL1BS { @@ -44,8 +42,8 @@ public: virtual StatusCode createRep(DataObject* pObj, IOpaqueAddress*& pAddr); // Storage type and class ID - virtual long repSvcType() const { return ByteStream_StorageType;} - static long storageType(){ return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } + static long storageType(); static const CLID& classID(); private: diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/JepByteStreamV1Tool.cxx b/Trigger/TrigT1/TrigT1CaloByteStream/src/JepByteStreamV1Tool.cxx index 800714bf6358589cccf1a7a93af7a4f9f373c13e..3c01bc8b1cf4f83a0e9145e5ffe1daf856cc6c2b 100755 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/JepByteStreamV1Tool.cxx +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/JepByteStreamV1Tool.cxx @@ -103,9 +103,6 @@ JepByteStreamV1Tool::~JepByteStreamV1Tool() // Initialize -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif StatusCode JepByteStreamV1Tool::initialize() { diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/JepByteStreamV2Cnv.cxx b/Trigger/TrigT1/TrigT1CaloByteStream/src/JepByteStreamV2Cnv.cxx old mode 100755 new mode 100644 index bc9b1cd7b15558a2e5f294423cf3b20a7f811698..e4c469825fd63f57ac823eb60c6b1e926b6bff46 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/JepByteStreamV2Cnv.cxx +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/JepByteStreamV2Cnv.cxx @@ -30,7 +30,7 @@ namespace LVL1BS { JepByteStreamV2Cnv::JepByteStreamV2Cnv( ISvcLocator* svcloc ) - : Converter( ByteStream_StorageType, classID(), svcloc ), + : Converter( storageType(), classID(), svcloc ), m_name("JepByteStreamV2Cnv"), m_tool("LVL1BS::JepByteStreamV2Tool/JepByteStreamV2Tool"), m_ByteStreamEventAccess("ByteStreamCnvSvc", m_name), @@ -49,11 +49,13 @@ const CLID& JepByteStreamV2Cnv::classID() return ClassID_traits<LVL1::JEPBSCollectionV2>::ID(); } +long JepByteStreamV2Cnv::storageType() +{ + return ByteStreamAddress::storageType(); +} + // Init method gets all necessary services etc. -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif StatusCode JepByteStreamV2Cnv::initialize() { diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/JepByteStreamV2Cnv.h b/Trigger/TrigT1/TrigT1CaloByteStream/src/JepByteStreamV2Cnv.h old mode 100755 new mode 100644 index 27c1cc8ce6142f1335d4b8e6c329a9877ee26c65..9b438874c5a6a078aa6857aaed709c3160903423 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/JepByteStreamV2Cnv.h +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/JepByteStreamV2Cnv.h @@ -21,8 +21,6 @@ class StatusCode; template <typename> class CnvFactory; -// Externals -extern long ByteStream_StorageType; namespace LVL1BS { @@ -44,8 +42,8 @@ public: virtual StatusCode createRep(DataObject* pObj, IOpaqueAddress*& pAddr); // Storage type and class ID - virtual long repSvcType() const { return ByteStream_StorageType;} - static long storageType(){ return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } + static long storageType(); static const CLID& classID(); private: diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/JepByteStreamV2Tool.cxx b/Trigger/TrigT1/TrigT1CaloByteStream/src/JepByteStreamV2Tool.cxx index 5c29b9cfbcde64ca686671063aad32011ed47ff3..421ba532a0bab60f7ae49807910b83f360d9cf78 100755 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/JepByteStreamV2Tool.cxx +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/JepByteStreamV2Tool.cxx @@ -105,9 +105,6 @@ JepByteStreamV2Tool::~JepByteStreamV2Tool() // Initialize -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif StatusCode JepByteStreamV2Tool::initialize() { diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/JepReadByteStreamCnv.h b/Trigger/TrigT1/TrigT1CaloByteStream/src/JepReadByteStreamCnv.h old mode 100755 new mode 100644 index 4556068a8e101252e77246a589fc3756d26d35ce..b3a0a0e911a4602f5cfea83717df2176515f7e0e --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/JepReadByteStreamCnv.h +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/JepReadByteStreamCnv.h @@ -21,8 +21,6 @@ class StatusCode; template <typename> class CnvFactory; -// Externals -extern long ByteStream_StorageType; namespace LVL1BS { @@ -51,8 +49,8 @@ public: virtual StatusCode createObj(IOpaqueAddress* pAddr, DataObject*& pObj); // Storage type and class ID - virtual long repSvcType() const { return ByteStream_StorageType;} - static long storageType(){ return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } + static long storageType(); static const CLID& classID(); private: diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/JepReadByteStreamCnv.icc b/Trigger/TrigT1/TrigT1CaloByteStream/src/JepReadByteStreamCnv.icc old mode 100755 new mode 100644 index f11594141cb5dc990a2b8f7f2f3ad3c5951c40d4..59ac60b26053fd703bc29232ef6e23f261af768f --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/JepReadByteStreamCnv.icc +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/JepReadByteStreamCnv.icc @@ -27,7 +27,7 @@ namespace LVL1BS { template <typename Container> JepReadByteStreamCnv<Container>::JepReadByteStreamCnv( ISvcLocator* svcloc ) - : Converter( ByteStream_StorageType, classID(), svcloc ), + : Converter( storageType(), classID(), svcloc ), m_name("JepReadByteStreamCnv"), m_tool("LVL1BS::JepByteStreamTool/JepByteStreamTool"), m_robDataProvider("ROBDataProviderSvc", m_name), @@ -48,11 +48,13 @@ const CLID& JepReadByteStreamCnv<Container>::classID() return ClassID_traits<Container>::ID(); } +long JepReadByteStreamCnv<Container>::storageType() +{ + return ByteStreamAddress::storageType(); +} + // Init method gets all necessary services etc. -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif template <typename Container> StatusCode JepReadByteStreamCnv<Container>::initialize() diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/JepReadByteStreamV1Cnv.h b/Trigger/TrigT1/TrigT1CaloByteStream/src/JepReadByteStreamV1Cnv.h old mode 100755 new mode 100644 index 08e5805e47199fd34b7a377844f1eecf18ead66f..4d128e9fd83daa095d085dcb2689084a073a6ea2 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/JepReadByteStreamV1Cnv.h +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/JepReadByteStreamV1Cnv.h @@ -21,8 +21,6 @@ class StatusCode; template <typename> class CnvFactory; -// Externals -extern long ByteStream_StorageType; namespace LVL1BS { @@ -46,8 +44,8 @@ public: virtual StatusCode createObj(IOpaqueAddress* pAddr, DataObject*& pObj); // Storage type and class ID - virtual long repSvcType() const { return ByteStream_StorageType;} - static long storageType(){ return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } + static long storageType(); static const CLID& classID(); private: diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/JepReadByteStreamV1Cnv.icc b/Trigger/TrigT1/TrigT1CaloByteStream/src/JepReadByteStreamV1Cnv.icc old mode 100755 new mode 100644 index 7a2ca6ec281b03896b596edcee57381e5900bab0..ae49f932598dd02a2b1d1b77b337ff00f1db4016 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/JepReadByteStreamV1Cnv.icc +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/JepReadByteStreamV1Cnv.icc @@ -27,7 +27,7 @@ namespace LVL1BS { template <typename Container> JepReadByteStreamV1Cnv<Container>::JepReadByteStreamV1Cnv( ISvcLocator* svcloc ) - : Converter( ByteStream_StorageType, classID(), svcloc ), + : Converter( storageType(), classID(), svcloc ), m_name("JepReadByteStreamV1Cnv"), m_tool("LVL1BS::JepByteStreamV1Tool/JepByteStreamV1Tool"), m_robDataProvider("ROBDataProviderSvc", m_name), @@ -48,11 +48,14 @@ const CLID& JepReadByteStreamV1Cnv<Container>::classID() return ClassID_traits<Container>::ID(); } +template <typename Container> +long JepReadByteStreamV1Cnv<Container>::storageType() +{ + return ByteStreamAddress::storageType(); +} + // Init method gets all necessary services etc. -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif template <typename Container> StatusCode JepReadByteStreamV1Cnv<Container>::initialize() diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/JepReadByteStreamV1V2Cnv.h b/Trigger/TrigT1/TrigT1CaloByteStream/src/JepReadByteStreamV1V2Cnv.h old mode 100755 new mode 100644 index 5c138d4ce6ced7a9dda540ceb245f2198d848766..2a0acf8560adeb4df9a5d47681d8e4e18cb77dbc --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/JepReadByteStreamV1V2Cnv.h +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/JepReadByteStreamV1V2Cnv.h @@ -22,8 +22,6 @@ class StatusCode; template <typename> class CnvFactory; -// Externals -extern long ByteStream_StorageType; namespace LVL1BS { @@ -50,8 +48,8 @@ public: virtual StatusCode createObj(IOpaqueAddress* pAddr, DataObject*& pObj); // Storage type and class ID - virtual long repSvcType() const { return ByteStream_StorageType;} - static long storageType(){ return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } + static long storageType(); static const CLID& classID(); private: diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/JepReadByteStreamV1V2Cnv.icc b/Trigger/TrigT1/TrigT1CaloByteStream/src/JepReadByteStreamV1V2Cnv.icc old mode 100755 new mode 100644 index a2d7d84b76a8a18e039a65ddf0edf3f6d6559564..b1a71bb45d4b6c9d48c0c114e0d937b542381732 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/JepReadByteStreamV1V2Cnv.icc +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/JepReadByteStreamV1V2Cnv.icc @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ @@ -31,7 +31,7 @@ namespace LVL1BS { template <typename Container> JepReadByteStreamV1V2Cnv<Container>::JepReadByteStreamV1V2Cnv( ISvcLocator* svcloc ) - : Converter( ByteStream_StorageType, classID(), svcloc ), + : Converter( storageType(), classID(), svcloc ), m_name("JepReadByteStreamV1V2Cnv"), m_tool1("LVL1BS::JepByteStreamV1Tool/JepByteStreamV1Tool"), m_tool2("LVL1BS::JepByteStreamV2Tool/JepByteStreamV2Tool"), @@ -53,11 +53,14 @@ const CLID& JepReadByteStreamV1V2Cnv<Container>::classID() return ClassID_traits<Container>::ID(); } +template <typename Container> +long JepReadByteStreamV1V2Cnv<Container>::storageType() +{ + return ByteStreamAddress::storageType(); +} + // Init method gets all necessary services etc. -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif template <typename Container> StatusCode JepReadByteStreamV1V2Cnv<Container>::initialize() diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/JepReadByteStreamV2Cnv.h b/Trigger/TrigT1/TrigT1CaloByteStream/src/JepReadByteStreamV2Cnv.h old mode 100755 new mode 100644 index 1e300b94ff43c4b7234149d1f2f6a5cef0c9d869..e2c407133c862fa6f9404f16b6d2d611a5fc6442 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/JepReadByteStreamV2Cnv.h +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/JepReadByteStreamV2Cnv.h @@ -21,8 +21,6 @@ class StatusCode; template <typename> class CnvFactory; -// Externals -extern long ByteStream_StorageType; namespace LVL1BS { @@ -45,8 +43,8 @@ public: virtual StatusCode createObj(IOpaqueAddress* pAddr, DataObject*& pObj); // Storage type and class ID - virtual long repSvcType() const { return ByteStream_StorageType;} - static long storageType(){ return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } + static long storageType(); static const CLID& classID(); private: diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/JepReadByteStreamV2Cnv.icc b/Trigger/TrigT1/TrigT1CaloByteStream/src/JepReadByteStreamV2Cnv.icc old mode 100755 new mode 100644 index 120acde55a1c42e323ea9f164f978a5a7650c338..92a5f1d292e3a2403b6ae80ad52358d9391cd8a8 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/JepReadByteStreamV2Cnv.icc +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/JepReadByteStreamV2Cnv.icc @@ -27,7 +27,7 @@ namespace LVL1BS { template <typename Container> JepReadByteStreamV2Cnv<Container>::JepReadByteStreamV2Cnv( ISvcLocator* svcloc ) - : Converter( ByteStream_StorageType, classID(), svcloc ), + : Converter( storageType(), classID(), svcloc ), m_name("JepReadByteStreamV2Cnv"), m_tool("LVL1BS::JepByteStreamV2Tool/JepByteStreamV2Tool"), m_robDataProvider("ROBDataProviderSvc", m_name), @@ -48,11 +48,13 @@ const CLID& JepReadByteStreamV2Cnv<Container>::classID() return ClassID_traits<Container>::ID(); } +long JepReadByteStreamV2Cnv<Container>::storageType() +{ + return ByteStreamAddress::storageType(); +} + // Init method gets all necessary services etc. -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif template <typename Container> StatusCode JepReadByteStreamV2Cnv<Container>::initialize() diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/JepRoiByteStreamCnv.cxx b/Trigger/TrigT1/TrigT1CaloByteStream/src/JepRoiByteStreamCnv.cxx old mode 100755 new mode 100644 index 94bcc3118c1a0b3f78405676e65b3c12f22de969..5ce5ba0d4fa7e5cb1a9d9d935232c5b367d87db1 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/JepRoiByteStreamCnv.cxx +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/JepRoiByteStreamCnv.cxx @@ -30,7 +30,7 @@ namespace LVL1BS { JepRoiByteStreamCnv::JepRoiByteStreamCnv( ISvcLocator* svcloc ) - : Converter( ByteStream_StorageType, classID(), svcloc ), + : Converter( storageType(), classID(), svcloc ), m_name("JepRoiByteStreamCnv"), m_tool("LVL1BS::JepRoiByteStreamTool/JepRoiByteStreamTool"), m_ByteStreamEventAccess("ByteStreamCnvSvc", m_name), @@ -49,11 +49,13 @@ const CLID& JepRoiByteStreamCnv::classID() return ClassID_traits<LVL1::JEPRoIBSCollection>::ID(); } +long JepRoiByteStreamCnv::storageType() +{ + return ByteStreamAddress::storageType(); +} + // Init method gets all necessary services etc. -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif StatusCode JepRoiByteStreamCnv::initialize() { diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/JepRoiByteStreamCnv.h b/Trigger/TrigT1/TrigT1CaloByteStream/src/JepRoiByteStreamCnv.h old mode 100755 new mode 100644 index decd4d00cc63a4ee8fd37898eae25ba2d3f6e392..86a955aada9dc4b1135cbc110eab88f7a9b9ea6b --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/JepRoiByteStreamCnv.h +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/JepRoiByteStreamCnv.h @@ -21,8 +21,6 @@ class StatusCode; template <typename> class CnvFactory; -// Externals -extern long ByteStream_StorageType; namespace LVL1BS { @@ -50,8 +48,8 @@ public: virtual StatusCode createRep(DataObject* pObj, IOpaqueAddress*& pAddr); // Storage type and class ID - virtual long repSvcType() const { return ByteStream_StorageType;} - static long storageType(){ return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } + static long storageType(); static const CLID& classID(); private: diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/JepRoiByteStreamTool.cxx b/Trigger/TrigT1/TrigT1CaloByteStream/src/JepRoiByteStreamTool.cxx index fb386842986ab2bcbde7465b1abad58d92abd794..19792be7efcd23a170517d5dcc3d7ee921ad2d05 100755 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/JepRoiByteStreamTool.cxx +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/JepRoiByteStreamTool.cxx @@ -83,9 +83,6 @@ JepRoiByteStreamTool::~JepRoiByteStreamTool() // Initialize -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif StatusCode JepRoiByteStreamTool::initialize() { diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/JepRoiByteStreamV1Cnv.cxx b/Trigger/TrigT1/TrigT1CaloByteStream/src/JepRoiByteStreamV1Cnv.cxx old mode 100755 new mode 100644 index 3a347daa2c33c536bef2ec45d58bf94473f87987..41a1faa5e82d879d564201df875c12c8b3cd93b3 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/JepRoiByteStreamV1Cnv.cxx +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/JepRoiByteStreamV1Cnv.cxx @@ -30,7 +30,7 @@ namespace LVL1BS { JepRoiByteStreamV1Cnv::JepRoiByteStreamV1Cnv( ISvcLocator* svcloc ) - : Converter( ByteStream_StorageType, classID(), svcloc ), + : Converter( storageType(), classID(), svcloc ), m_name("JepRoiByteStreamV1Cnv"), m_tool("LVL1BS::JepRoiByteStreamV1Tool/JepRoiByteStreamV1Tool"), m_ByteStreamEventAccess("ByteStreamCnvSvc", m_name), @@ -49,11 +49,13 @@ const CLID& JepRoiByteStreamV1Cnv::classID() return ClassID_traits<LVL1::JEPRoIBSCollectionV1>::ID(); } +long JepRoiByteStreamV1Cnv::storageType() +{ + return ByteStreamAddress::storageType(); +} + // Init method gets all necessary services etc. -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif StatusCode JepRoiByteStreamV1Cnv::initialize() { diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/JepRoiByteStreamV1Cnv.h b/Trigger/TrigT1/TrigT1CaloByteStream/src/JepRoiByteStreamV1Cnv.h old mode 100755 new mode 100644 index 507875b8b8da5cb3598448e9aab387673d716c61..200e9e8e4277f92cd32cd96e55ac25cf9c4a35d0 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/JepRoiByteStreamV1Cnv.h +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/JepRoiByteStreamV1Cnv.h @@ -21,8 +21,6 @@ class StatusCode; template <typename> class CnvFactory; -// Externals -extern long ByteStream_StorageType; namespace LVL1BS { @@ -45,8 +43,8 @@ public: virtual StatusCode createRep(DataObject* pObj, IOpaqueAddress*& pAddr); // Storage type and class ID - virtual long repSvcType() const { return ByteStream_StorageType;} - static long storageType(){ return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } + static long storageType(); static const CLID& classID(); private: diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/JepRoiByteStreamV1Tool.cxx b/Trigger/TrigT1/TrigT1CaloByteStream/src/JepRoiByteStreamV1Tool.cxx index 5f04d58ed238582141f9fa196fad789f5cde9a38..ec41daa19fb2b4408dac7592c8a1ce8661a41d9d 100755 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/JepRoiByteStreamV1Tool.cxx +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/JepRoiByteStreamV1Tool.cxx @@ -89,9 +89,6 @@ JepRoiByteStreamV1Tool::~JepRoiByteStreamV1Tool() // Initialize -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif StatusCode JepRoiByteStreamV1Tool::initialize() { diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/JepRoiByteStreamV2Cnv.cxx b/Trigger/TrigT1/TrigT1CaloByteStream/src/JepRoiByteStreamV2Cnv.cxx old mode 100755 new mode 100644 index e249dad1aae55b0587456877ad1baaa7ec4dd5bd..eb2470f40b394eace32dd993294b8cbe00387608 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/JepRoiByteStreamV2Cnv.cxx +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/JepRoiByteStreamV2Cnv.cxx @@ -30,7 +30,7 @@ namespace LVL1BS { JepRoiByteStreamV2Cnv::JepRoiByteStreamV2Cnv( ISvcLocator* svcloc ) - : Converter( ByteStream_StorageType, classID(), svcloc ), + : Converter( storageType(), classID(), svcloc ), m_name("JepRoiByteStreamV2Cnv"), m_tool("LVL1BS::JepRoiByteStreamV2Tool/JepRoiByteStreamV2Tool"), m_ByteStreamEventAccess("ByteStreamCnvSvc", m_name), @@ -49,11 +49,13 @@ const CLID& JepRoiByteStreamV2Cnv::classID() return ClassID_traits<LVL1::JEPRoIBSCollectionV2>::ID(); } +long JepRoiByteStreamV2Cnv::storageType() +{ + return ByteStreamAddress::storageType(); +} + // Init method gets all necessary services etc. -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif StatusCode JepRoiByteStreamV2Cnv::initialize() { diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/JepRoiByteStreamV2Cnv.h b/Trigger/TrigT1/TrigT1CaloByteStream/src/JepRoiByteStreamV2Cnv.h old mode 100755 new mode 100644 index 5f7348066fded03f384cd361faa6541b0501de5c..c46cb7d96d02a8e8dd978f34ce938eca6e2889a8 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/JepRoiByteStreamV2Cnv.h +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/JepRoiByteStreamV2Cnv.h @@ -21,8 +21,6 @@ class StatusCode; template <typename> class CnvFactory; -// Externals -extern long ByteStream_StorageType; namespace LVL1BS { @@ -44,8 +42,8 @@ public: virtual StatusCode createRep(DataObject* pObj, IOpaqueAddress*& pAddr); // Storage type and class ID - virtual long repSvcType() const { return ByteStream_StorageType;} - static long storageType(){ return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } + static long storageType(); static const CLID& classID(); private: diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/JepRoiByteStreamV2Tool.cxx b/Trigger/TrigT1/TrigT1CaloByteStream/src/JepRoiByteStreamV2Tool.cxx index 6771a18a4121892673a3b0449e0cad486912240d..52912acb4f3429eab7345ebe822033c420a29e31 100755 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/JepRoiByteStreamV2Tool.cxx +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/JepRoiByteStreamV2Tool.cxx @@ -87,9 +87,6 @@ JepRoiByteStreamV2Tool::~JepRoiByteStreamV2Tool() // Initialize -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif StatusCode JepRoiByteStreamV2Tool::initialize() { diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/JepRoiReadByteStreamCnv.h b/Trigger/TrigT1/TrigT1CaloByteStream/src/JepRoiReadByteStreamCnv.h old mode 100755 new mode 100644 index fc47779d44e6cb2fb5fa902a24102256d8947571..dccbab8a0d4da551cc4032801495cf28d7c8f4e5 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/JepRoiReadByteStreamCnv.h +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/JepRoiReadByteStreamCnv.h @@ -21,8 +21,6 @@ class StatusCode; template <typename> class CnvFactory; -// Externals -extern long ByteStream_StorageType; namespace LVL1BS { @@ -51,8 +49,8 @@ public: virtual StatusCode createObj(IOpaqueAddress* pAddr, DataObject*& pObj); // Storage type and class ID - virtual long repSvcType() const { return ByteStream_StorageType;} - static long storageType(){ return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } + static long storageType(); static const CLID& classID(); private: diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/JepRoiReadByteStreamCnv.icc b/Trigger/TrigT1/TrigT1CaloByteStream/src/JepRoiReadByteStreamCnv.icc old mode 100755 new mode 100644 index b35a1c86364da63d95ba93f1cc531f3a99c8a731..112e6145cacb0017304a1fb60b01c2491ce84a64 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/JepRoiReadByteStreamCnv.icc +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/JepRoiReadByteStreamCnv.icc @@ -28,7 +28,7 @@ namespace LVL1BS { template <typename Container> JepRoiReadByteStreamCnv<Container>::JepRoiReadByteStreamCnv( ISvcLocator* svcloc ) - : Converter( ByteStream_StorageType, classID(), svcloc ), + : Converter( storageType(), classID(), svcloc ), m_name("JepRoiReadByteStreamCnv"), m_tool("LVL1BS::JepRoiByteStreamTool/JepRoiByteStreamTool"), m_robDataProvider("ROBDataProviderSvc", m_name), @@ -49,11 +49,13 @@ const CLID& JepRoiReadByteStreamCnv<Container>::classID() return ClassID_traits<Container>::ID(); } +long JepRoiReadByteStreamCnv<Container>::storageType() +{ + return ByteStreamAddress::storageType(); +} + // Init method gets all necessary services etc. -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif template <typename Container> StatusCode JepRoiReadByteStreamCnv<Container>::initialize() diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/JepRoiReadByteStreamV1Cnv.h b/Trigger/TrigT1/TrigT1CaloByteStream/src/JepRoiReadByteStreamV1Cnv.h old mode 100755 new mode 100644 index 5f9b2f52e553fd0ee11e6ba410f47aafa093dc54..0a1a63d663a763cabfc53aff405191043c3c8d7a --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/JepRoiReadByteStreamV1Cnv.h +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/JepRoiReadByteStreamV1Cnv.h @@ -21,8 +21,6 @@ class StatusCode; template <typename> class CnvFactory; -// Externals -extern long ByteStream_StorageType; namespace LVL1BS { @@ -46,8 +44,8 @@ public: virtual StatusCode createObj(IOpaqueAddress* pAddr, DataObject*& pObj); // Storage type and class ID - virtual long repSvcType() const { return ByteStream_StorageType;} - static long storageType(){ return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } + static long storageType(); static const CLID& classID(); private: diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/JepRoiReadByteStreamV1Cnv.icc b/Trigger/TrigT1/TrigT1CaloByteStream/src/JepRoiReadByteStreamV1Cnv.icc old mode 100755 new mode 100644 index ff7d42a8c0d234684f2ec31eaeb56074edbc104e..c75b442e0c8ccd0e599b48c3a244e5e15b8902bc --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/JepRoiReadByteStreamV1Cnv.icc +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/JepRoiReadByteStreamV1Cnv.icc @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ @@ -28,7 +28,7 @@ namespace LVL1BS { template <typename Container> JepRoiReadByteStreamV1Cnv<Container>::JepRoiReadByteStreamV1Cnv( ISvcLocator* svcloc ) - : Converter( ByteStream_StorageType, classID(), svcloc ), + : Converter( storageType(), classID(), svcloc ), m_name("JepRoiReadByteStreamV1Cnv"), m_tool("LVL1BS::JepRoiByteStreamV1Tool/JepRoiByteStreamV1Tool"), m_robDataProvider("ROBDataProviderSvc", m_name), @@ -49,11 +49,14 @@ const CLID& JepRoiReadByteStreamV1Cnv<Container>::classID() return ClassID_traits<Container>::ID(); } +template <typename Container> +long JepRoiReadByteStreamV1Cnv<Container>::storageType() +{ + return ByteStreamAddress::storageType(); +} + // Init method gets all necessary services etc. -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif template <typename Container> StatusCode JepRoiReadByteStreamV1Cnv<Container>::initialize() diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/JepRoiReadByteStreamV2Cnv.h b/Trigger/TrigT1/TrigT1CaloByteStream/src/JepRoiReadByteStreamV2Cnv.h old mode 100755 new mode 100644 index 4d88e8a4c019b91b3078fab65ae6184883df2284..569fe838788c43db7719bd8d657603f2a951c937 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/JepRoiReadByteStreamV2Cnv.h +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/JepRoiReadByteStreamV2Cnv.h @@ -21,8 +21,6 @@ class StatusCode; template <typename> class CnvFactory; -// Externals -extern long ByteStream_StorageType; namespace LVL1BS { @@ -45,8 +43,8 @@ public: virtual StatusCode createObj(IOpaqueAddress* pAddr, DataObject*& pObj); // Storage type and class ID - virtual long repSvcType() const { return ByteStream_StorageType;} - static long storageType(){ return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } + static long storageType(); static const CLID& classID(); private: diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/JepRoiReadByteStreamV2Cnv.icc b/Trigger/TrigT1/TrigT1CaloByteStream/src/JepRoiReadByteStreamV2Cnv.icc old mode 100755 new mode 100644 index f8b3a41246a39b600bed699cd12619f856eb592b..8eb3d7a1c6ec5373123453faf2d3f74eba969a76 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/JepRoiReadByteStreamV2Cnv.icc +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/JepRoiReadByteStreamV2Cnv.icc @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ @@ -28,7 +28,7 @@ namespace LVL1BS { template <typename Container> JepRoiReadByteStreamV2Cnv<Container>::JepRoiReadByteStreamV2Cnv( ISvcLocator* svcloc ) - : Converter( ByteStream_StorageType, classID(), svcloc ), + : Converter( storageType(), classID(), svcloc ), m_name("JepRoiReadByteStreamV2Cnv"), m_tool("LVL1BS::JepRoiByteStreamV2Tool/JepRoiByteStreamV2Tool"), m_robDataProvider("ROBDataProviderSvc", m_name), @@ -49,11 +49,14 @@ const CLID& JepRoiReadByteStreamV2Cnv<Container>::classID() return ClassID_traits<Container>::ID(); } +template <typename Container> +long JepRoiReadByteStreamV2Cnv<Container>::storageType() +{ + return ByteStreamAddress::storageType(); +} + // Init method gets all necessary services etc. -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif template <typename Container> StatusCode JepRoiReadByteStreamV2Cnv<Container>::initialize() diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/L1CaloErrorByteStreamCnv.cxx b/Trigger/TrigT1/TrigT1CaloByteStream/src/L1CaloErrorByteStreamCnv.cxx index 42ac996ac97ef6306c958dafadbb0875b08aaf4e..0aa93dd9364302a88e6af9e0b555c8c17061e37a 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/L1CaloErrorByteStreamCnv.cxx +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/L1CaloErrorByteStreamCnv.cxx @@ -23,7 +23,7 @@ namespace LVL1BS { L1CaloErrorByteStreamCnv::L1CaloErrorByteStreamCnv( ISvcLocator* svcloc ) - : Converter( ByteStream_StorageType, classID(), svcloc ), + : Converter( storageType(), classID(), svcloc ), m_name("L1CaloErrorByteStreamCnv"), m_tool("LVL1BS::L1CaloErrorByteStreamTool/L1CaloErrorByteStreamTool"), m_log(msgSvc(), m_name), m_debug(false) @@ -41,11 +41,13 @@ const CLID& L1CaloErrorByteStreamCnv::classID() return ClassID_traits<std::vector<unsigned int> >::ID(); } +long L1CaloErrorByteStreamCnv::storageType() +{ + return ByteStreamAddress::storageType(); +} + // Init method gets all necessary services etc. -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif StatusCode L1CaloErrorByteStreamCnv::initialize() { diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/L1CaloErrorByteStreamCnv.h b/Trigger/TrigT1/TrigT1CaloByteStream/src/L1CaloErrorByteStreamCnv.h index db57d137230be89f4ed33bc7992116fb1a6ee7c7..44f330227ead4694c667007a60882b2bdfb7484e 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/L1CaloErrorByteStreamCnv.h +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/L1CaloErrorByteStreamCnv.h @@ -19,8 +19,6 @@ class StatusCode; template <typename> class CnvFactory; -// Externals -extern long ByteStream_StorageType; namespace LVL1BS { @@ -43,8 +41,8 @@ public: virtual StatusCode createObj(IOpaqueAddress* pAddr, DataObject*& pObj); // Storage type and class ID - virtual long repSvcType() const { return ByteStream_StorageType;} - static long storageType(){ return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } + static long storageType(); static const CLID& classID(); private: diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/L1CaloErrorByteStreamTool.cxx b/Trigger/TrigT1/TrigT1CaloByteStream/src/L1CaloErrorByteStreamTool.cxx index eb8346502af93d89d4c3a936adbe23b26ac5d1bb..7c48d50ee4f55d17e2ab6b556d7cd739a6925196 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/L1CaloErrorByteStreamTool.cxx +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/L1CaloErrorByteStreamTool.cxx @@ -41,9 +41,6 @@ L1CaloErrorByteStreamTool::~L1CaloErrorByteStreamTool() // Initialize -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif StatusCode L1CaloErrorByteStreamTool::initialize() { diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/PpmByteStreamV1Cnv.cxx b/Trigger/TrigT1/TrigT1CaloByteStream/src/PpmByteStreamV1Cnv.cxx index 34befd8775ec794903ceccfcc2993932c7f928e7..f03157a3df818d102d8bd3963e6671c7e029c703 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/PpmByteStreamV1Cnv.cxx +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/PpmByteStreamV1Cnv.cxx @@ -32,7 +32,7 @@ namespace LVL1BS { PpmByteStreamV1Cnv::PpmByteStreamV1Cnv( ISvcLocator* svcloc ) - : Converter( ByteStream_StorageType, classID(), svcloc ), + : Converter( storageType(), classID(), svcloc ), m_name("PpmByteStreamV1Cnv"), m_tool("LVL1BS::PpmByteStreamV1Tool/PpmByteStreamV1Tool"), m_robDataProvider("ROBDataProviderSvc", m_name), @@ -52,11 +52,13 @@ const CLID& PpmByteStreamV1Cnv::classID() return ClassID_traits<DataVector<LVL1::TriggerTower> >::ID(); } +long PpmByteStreamV1Cnv::storageType() +{ + return ByteStreamAddress::storageType(); +} + // Init method gets all necessary services etc. -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif StatusCode PpmByteStreamV1Cnv::initialize() { diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/PpmByteStreamV1Cnv.h b/Trigger/TrigT1/TrigT1CaloByteStream/src/PpmByteStreamV1Cnv.h index 7096df448d1ee5d737efd649245f140ab1dad6dd..c41c9f7c0b95f4727ff95fe8759e32a81e8edc22 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/PpmByteStreamV1Cnv.h +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/PpmByteStreamV1Cnv.h @@ -22,8 +22,6 @@ class StatusCode; template <typename> class CnvFactory; -// Externals -extern long ByteStream_StorageType; namespace LVL1BS { @@ -48,8 +46,8 @@ public: virtual StatusCode createRep(DataObject* pObj, IOpaqueAddress*& pAddr); // Storage type and class ID - virtual long repSvcType() const { return ByteStream_StorageType;} - static long storageType(){ return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } + static long storageType(); static const CLID& classID(); private: diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/PpmByteStreamV1Tool.cxx b/Trigger/TrigT1/TrigT1CaloByteStream/src/PpmByteStreamV1Tool.cxx index fddeb1aad8227e943a6331ae3b0cd7a14d685484..e2563bd1372a5fc832ca3a9e2e49d509ed1c0d39 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/PpmByteStreamV1Tool.cxx +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/PpmByteStreamV1Tool.cxx @@ -110,9 +110,6 @@ PpmByteStreamV1Tool::~PpmByteStreamV1Tool() // Initialize -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif StatusCode PpmByteStreamV1Tool::initialize() { diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/RodHeaderByteStreamCnv.cxx b/Trigger/TrigT1/TrigT1CaloByteStream/src/RodHeaderByteStreamCnv.cxx index f4a116d209cae7e4ad391951bad5ad3bd6158c65..e80e5d042bfc928596dc1b20bea904f2e222ecfb 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/RodHeaderByteStreamCnv.cxx +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/RodHeaderByteStreamCnv.cxx @@ -31,7 +31,7 @@ namespace LVL1BS { RodHeaderByteStreamCnv::RodHeaderByteStreamCnv( ISvcLocator* svcloc ) - : Converter( ByteStream_StorageType, classID(), svcloc ), + : Converter( storageType(), classID(), svcloc ), m_name("RodHeaderByteStreamCnv"), m_tool("LVL1BS::RodHeaderByteStreamTool/RodHeaderByteStreamTool"), m_log(msgSvc(), m_name), m_debug(false) @@ -49,11 +49,13 @@ const CLID& RodHeaderByteStreamCnv::classID() return ClassID_traits<DataVector<LVL1::RODHeader> >::ID(); } +long RodHeaderByteStreamCnv::storageType() +{ + return ByteStreamAddress::storageType(); +} + // Init method gets all necessary services etc. -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif StatusCode RodHeaderByteStreamCnv::initialize() { diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/RodHeaderByteStreamCnv.h b/Trigger/TrigT1/TrigT1CaloByteStream/src/RodHeaderByteStreamCnv.h index 31d84ff9c7d227478883939f36227b0221bf228e..8a607846a6d7a2042b66deae62d0da458a8e4e45 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/RodHeaderByteStreamCnv.h +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/RodHeaderByteStreamCnv.h @@ -20,8 +20,6 @@ class StatusCode; template <typename> class CnvFactory; -// Externals -extern long ByteStream_StorageType; namespace LVL1BS { @@ -44,8 +42,8 @@ public: virtual StatusCode createObj(IOpaqueAddress* pAddr, DataObject*& pObj); // Storage type and class ID - virtual long repSvcType() const { return ByteStream_StorageType;} - static long storageType(){ return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } + static long storageType(); static const CLID& classID(); private: diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/RodHeaderByteStreamTool.cxx b/Trigger/TrigT1/TrigT1CaloByteStream/src/RodHeaderByteStreamTool.cxx index 8ea0ea6579e699fba9dbc0ce497210be0917ae8b..e92cd31d979c2538c65e9e4bf7d0b61945c1261a 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/RodHeaderByteStreamTool.cxx +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/RodHeaderByteStreamTool.cxx @@ -82,9 +82,6 @@ RodHeaderByteStreamTool::~RodHeaderByteStreamTool() // Initialize -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif StatusCode RodHeaderByteStreamTool::initialize() { diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/TrigT1CaloDataAccess.cxx b/Trigger/TrigT1/TrigT1CaloByteStream/src/TrigT1CaloDataAccess.cxx index 215089ce65e67db286a42cb458617ab759d75d22..c2a5a9b4ba211c5ca56a857c7712b6506432b48e 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/TrigT1CaloDataAccess.cxx +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/TrigT1CaloDataAccess.cxx @@ -49,9 +49,6 @@ TrigT1CaloDataAccess::~TrigT1CaloDataAccess() // Initialize -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif StatusCode TrigT1CaloDataAccess::initialize() { diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/TrigT1CaloDataAccessV2.cxx b/Trigger/TrigT1/TrigT1CaloByteStream/src/TrigT1CaloDataAccessV2.cxx index 430299620e4eeb6f0f0e3c5fc16f479d60bbe387..e124af91aa490bc336769a83196279ab5f7372c4 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/TrigT1CaloDataAccessV2.cxx +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/TrigT1CaloDataAccessV2.cxx @@ -26,9 +26,6 @@ TrigT1CaloDataAccessV2::TrigT1CaloDataAccessV2(const std::string& name /*="TrigT // Initialize -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif StatusCode TrigT1CaloDataAccessV2::initialize() { diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/TriggerTowerSelectionTool.cxx b/Trigger/TrigT1/TrigT1CaloByteStream/src/TriggerTowerSelectionTool.cxx index c0e1e8e25753dc79846c10533ca203fdaca2e658..4ef8fb505b44f1adfb3bf8d670581dca2b96c962 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/TriggerTowerSelectionTool.cxx +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/TriggerTowerSelectionTool.cxx @@ -61,9 +61,6 @@ TriggerTowerSelectionTool::~TriggerTowerSelectionTool() // Initialisation -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif StatusCode TriggerTowerSelectionTool::initialize() { diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxCpHitsByteStreamAuxCnv.cxx b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxCpHitsByteStreamAuxCnv.cxx index 3ba04146ab56c6fdf74468afc7f52a5ad5742c45..d8fca11bd96a2f5375f8da0f0a5e9be0c6416dc9 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxCpHitsByteStreamAuxCnv.cxx +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxCpHitsByteStreamAuxCnv.cxx @@ -52,7 +52,7 @@ namespace LVL1BS { CmxCpHitsByteStreamAuxCnv::CmxCpHitsByteStreamAuxCnv(ISvcLocator* svcloc) : - Converter(ByteStream_StorageType, classID(), svcloc), + Converter(storageType(), classID(), svcloc), AthMessaging(svcloc != 0 ? msgSvc() : 0, "CmxCpHitsByteStreamAuxCnv"), m_name("CmxCpHitsByteStreamAuxCnv"), m_readTool("LVL1BS::CpByteStreamV2Tool/CpByteStreamV2Tool") @@ -63,11 +63,13 @@ const CLID& CmxCpHitsByteStreamAuxCnv::classID() { return ClassID_traits<xAOD::CMXCPHitsAuxContainer>::ID(); } +long CmxCpHitsByteStreamAuxCnv::storageType() +{ + return ByteStreamAddress::storageType(); +} + // Init method gets all necessary services etc. -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif StatusCode CmxCpHitsByteStreamAuxCnv::initialize() { ATH_MSG_DEBUG( "Initializing " << m_name << " - package version " << PACKAGE_VERSION); diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxCpHitsByteStreamAuxCnv.h b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxCpHitsByteStreamAuxCnv.h index ac0a6171d83d41bdb3c1ee56bbbfa33fea85fd2e..0a10348ce247454bdcb28357c591fada15350f7a 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxCpHitsByteStreamAuxCnv.h +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxCpHitsByteStreamAuxCnv.h @@ -24,8 +24,6 @@ class StatusCode; template <typename> class CnvFactory; -// Externals -extern long ByteStream_StorageType; namespace LVL1BS { @@ -50,8 +48,8 @@ public: virtual StatusCode createRep(DataObject* pObj, IOpaqueAddress*& pAddr); // Storage type and class ID - virtual long repSvcType() const { return ByteStream_StorageType;} - static long storageType(){ return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } + static long storageType(); static const CLID& classID(); private: diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxCpHitsByteStreamxAODCnv.cxx b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxCpHitsByteStreamxAODCnv.cxx index f37c40ce2f50b564ec638a3c6298f0f0bcef87bf..acd4f9a4827019caf54a76e3807808a62fd12475 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxCpHitsByteStreamxAODCnv.cxx +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxCpHitsByteStreamxAODCnv.cxx @@ -32,7 +32,7 @@ namespace LVL1BS { CmxCpHitsByteStreamxAODCnv::CmxCpHitsByteStreamxAODCnv(ISvcLocator* svcloc) : - Converter(ByteStream_StorageType, classID(), svcloc), + Converter(storageType(), classID(), svcloc), AthMessaging(svcloc != 0 ? msgSvc() : 0, "CmxCpHitsByteStreamxAODCnv"), m_name("CmxCpHitsByteStreamxAODCnv") { @@ -45,11 +45,13 @@ const CLID& CmxCpHitsByteStreamxAODCnv::classID() { return ClassID_traits<xAOD::CMXCPHitsContainer>::ID(); } +long CmxCpHitsByteStreamxAODCnv::storageType() +{ + return ByteStreamAddress::storageType(); +} + // Init method gets all necessary services etc. -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif StatusCode CmxCpHitsByteStreamxAODCnv::initialize() { ATH_MSG_DEBUG( diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxCpHitsByteStreamxAODCnv.h b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxCpHitsByteStreamxAODCnv.h index c1ac193cee7b758913e389134924c96d74c995cb..fefbcf94c7c77336e682770a94a370fd1e2524f3 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxCpHitsByteStreamxAODCnv.h +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxCpHitsByteStreamxAODCnv.h @@ -22,8 +22,6 @@ class StatusCode; template <typename> class CnvFactory; class StoreGateSvc; -// Externals -extern long ByteStream_StorageType; namespace LVL1BS { /** ByteStream converter for CmxTob. @@ -45,8 +43,8 @@ public: virtual StatusCode createRep(DataObject* pObj, IOpaqueAddress*& pAddr); // Storage type and class ID - virtual long repSvcType() const { return ByteStream_StorageType;} - static long storageType(){ return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } + static long storageType(); static const CLID& classID(); diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxCpTobByteStreamAuxCnv.cxx b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxCpTobByteStreamAuxCnv.cxx index a2249222ebdf49a7e18cc34c66290fdaf74c87ad..ca8505b25e5c346e9aa2762c56a64f350cd1479c 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxCpTobByteStreamAuxCnv.cxx +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxCpTobByteStreamAuxCnv.cxx @@ -52,7 +52,7 @@ namespace LVL1BS { CmxCpTobByteStreamAuxCnv::CmxCpTobByteStreamAuxCnv(ISvcLocator* svcloc) : - Converter(ByteStream_StorageType, classID(), svcloc), + Converter(storageType(), classID(), svcloc), AthMessaging(svcloc != 0 ? msgSvc() : 0, "CmxCpTobByteStreamAuxCnv"), m_name("CmxCpTobByteStreamAuxCnv"), m_readTool("LVL1BS::CpByteStreamV2Tool/CpByteStreamV2Tool") @@ -63,11 +63,13 @@ const CLID& CmxCpTobByteStreamAuxCnv::classID() { return ClassID_traits<xAOD::CMXCPTobAuxContainer>::ID(); } +long CmxCpTobByteStreamAuxCnv::storageType() +{ + return ByteStreamAddress::storageType(); +} + // Init method gets all necessary services etc. -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif StatusCode CmxCpTobByteStreamAuxCnv::initialize() { ATH_MSG_DEBUG( "Initializing " << m_name << " - package version " << PACKAGE_VERSION); diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxCpTobByteStreamAuxCnv.h b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxCpTobByteStreamAuxCnv.h index 8c63be227e576300f0e523487e5fcbbf0fffe1dd..94b668037ff8f70ba85a9054205730126a728bd4 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxCpTobByteStreamAuxCnv.h +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxCpTobByteStreamAuxCnv.h @@ -24,8 +24,6 @@ class StatusCode; template <typename> class CnvFactory; -// Externals -extern long ByteStream_StorageType; namespace LVL1BS { @@ -50,8 +48,8 @@ public: virtual StatusCode createRep(DataObject* pObj, IOpaqueAddress*& pAddr); // Storage type and class ID - virtual long repSvcType() const { return ByteStream_StorageType;} - static long storageType(){ return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } + static long storageType(); static const CLID& classID(); private: diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxCpTobByteStreamxAODCnv.cxx b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxCpTobByteStreamxAODCnv.cxx index 09226f308ff8a518c1e48dae4e53a9e4efe0822c..74c51c157fb68b4233bc51ca87aa1ea8d7b3a61b 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxCpTobByteStreamxAODCnv.cxx +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxCpTobByteStreamxAODCnv.cxx @@ -32,7 +32,7 @@ namespace LVL1BS { CmxCpTobByteStreamxAODCnv::CmxCpTobByteStreamxAODCnv(ISvcLocator* svcloc) : - Converter(ByteStream_StorageType, classID(), svcloc), + Converter(storageType(), classID(), svcloc), AthMessaging(svcloc != 0 ? msgSvc() : 0, "CmxCpTobByteStreamxAODCnv"), m_name("CmxCpTobByteStreamxAODCnv") { @@ -45,11 +45,13 @@ const CLID& CmxCpTobByteStreamxAODCnv::classID() { return ClassID_traits<xAOD::CMXCPTobContainer>::ID(); } +long CmxCpTobByteStreamxAODCnv::storageType() +{ + return ByteStreamAddress::storageType(); +} + // Init method gets all necessary services etc. -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif StatusCode CmxCpTobByteStreamxAODCnv::initialize() { ATH_MSG_DEBUG( diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxCpTobByteStreamxAODCnv.h b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxCpTobByteStreamxAODCnv.h index 4ece851a0cb1d112aa8d994a5e84d29dd957fc1f..a2a485a6b84a77f20f61b925841782b23b827db9 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxCpTobByteStreamxAODCnv.h +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxCpTobByteStreamxAODCnv.h @@ -22,8 +22,6 @@ class StatusCode; template <typename> class CnvFactory; class StoreGateSvc; -// Externals -extern long ByteStream_StorageType; namespace LVL1BS { /** ByteStream converter for CmxTob. @@ -45,8 +43,8 @@ public: virtual StatusCode createRep(DataObject* pObj, IOpaqueAddress*& pAddr); // Storage type and class ID - virtual long repSvcType() const { return ByteStream_StorageType;} - static long storageType(){ return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } + static long storageType(); static const CLID& classID(); diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxEtSumsByteStreamAuxCnv.cxx b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxEtSumsByteStreamAuxCnv.cxx index d641a0df7338c9d1894b15dbb1e7b0edab7eee93..4d248199ce64aed70f0e1e5bc372f8f286a1b417 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxEtSumsByteStreamAuxCnv.cxx +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxEtSumsByteStreamAuxCnv.cxx @@ -52,7 +52,7 @@ namespace LVL1BS { CmxEtSumsByteStreamAuxCnv::CmxEtSumsByteStreamAuxCnv(ISvcLocator* svcloc) : - Converter(ByteStream_StorageType, classID(), svcloc), + Converter(storageType(), classID(), svcloc), AthMessaging(svcloc != 0 ? msgSvc() : 0, "CmxEtSumsByteStreamAuxCnv"), m_name("CmxEtSumsByteStreamAuxCnv"), m_readTool("LVL1BS::JepByteStreamV2Tool/JepByteStreamV2Tool") @@ -63,11 +63,13 @@ const CLID& CmxEtSumsByteStreamAuxCnv::classID() { return ClassID_traits<xAOD::CMXEtSumsAuxContainer>::ID(); } +long CmxEtSumsByteStreamAuxCnv::storageType() +{ + return ByteStreamAddress::storageType(); +} + // Init method gets all necessary services etc. -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif StatusCode CmxEtSumsByteStreamAuxCnv::initialize() { ATH_MSG_DEBUG( "Initializing " << m_name << " - package version " << PACKAGE_VERSION); diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxEtSumsByteStreamAuxCnv.h b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxEtSumsByteStreamAuxCnv.h index 14225c0f144a110b2f8bd11156b498f6b8b32648..20f130e9585f221c4a75223ca9e20309acd642f9 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxEtSumsByteStreamAuxCnv.h +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxEtSumsByteStreamAuxCnv.h @@ -24,8 +24,6 @@ class StatusCode; template <typename> class CnvFactory; -// Externals -extern long ByteStream_StorageType; namespace LVL1BS { @@ -50,8 +48,8 @@ public: virtual StatusCode createRep(DataObject* pObj, IOpaqueAddress*& pAddr); // Storage type and class ID - virtual long repSvcType() const { return ByteStream_StorageType;} - static long storageType(){ return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } + static long storageType(); static const CLID& classID(); private: diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxEtSumsByteStreamxAODCnv.cxx b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxEtSumsByteStreamxAODCnv.cxx index 303bbcf1d24677d7fd5572a185f9e81a21190b75..ad32db8d112d5f191ee40514eb0557d1dafae9d1 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxEtSumsByteStreamxAODCnv.cxx +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxEtSumsByteStreamxAODCnv.cxx @@ -32,7 +32,7 @@ namespace LVL1BS { CmxEtSumsByteStreamxAODCnv::CmxEtSumsByteStreamxAODCnv(ISvcLocator* svcloc) : - Converter(ByteStream_StorageType, classID(), svcloc), + Converter(storageType(), classID(), svcloc), AthMessaging(svcloc != 0 ? msgSvc() : 0, "CmxEtSumsByteStreamxAODCnv"), m_name("CmxEtSumsByteStreamxAODCnv") { @@ -45,11 +45,13 @@ const CLID& CmxEtSumsByteStreamxAODCnv::classID() { return ClassID_traits<xAOD::CMXEtSumsContainer>::ID(); } +long CmxEtSumsByteStreamxAODCnv::storageType() +{ + return ByteStreamAddress::storageType(); +} + // Init method gets all necessary services etc. -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif StatusCode CmxEtSumsByteStreamxAODCnv::initialize() { ATH_MSG_DEBUG( diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxEtSumsByteStreamxAODCnv.h b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxEtSumsByteStreamxAODCnv.h index d8e70b3515ca1960873ba39c5a8a3f080befb136..395865ad5d8f4b70581ffd414fcc81a2d4f68c3e 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxEtSumsByteStreamxAODCnv.h +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxEtSumsByteStreamxAODCnv.h @@ -22,8 +22,6 @@ class StatusCode; template <typename> class CnvFactory; class StoreGateSvc; -// Externals -extern long ByteStream_StorageType; namespace LVL1BS { /** ByteStream converter for CmxTob. @@ -45,8 +43,8 @@ public: virtual StatusCode createRep(DataObject* pObj, IOpaqueAddress*& pAddr); // Storage type and class ID - virtual long repSvcType() const { return ByteStream_StorageType;} - static long storageType(){ return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } + static long storageType(); static const CLID& classID(); diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxJetHitsByteStreamAuxCnv.cxx b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxJetHitsByteStreamAuxCnv.cxx index edb3aa653ebc32ca9cc72fc4cc7c3b5105c570d1..a2eb1acd1d02d951ad2d9e970dcbbc4dff3dfc94 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxJetHitsByteStreamAuxCnv.cxx +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxJetHitsByteStreamAuxCnv.cxx @@ -52,7 +52,7 @@ namespace LVL1BS { CmxJetHitsByteStreamAuxCnv::CmxJetHitsByteStreamAuxCnv(ISvcLocator* svcloc) : - Converter(ByteStream_StorageType, classID(), svcloc), + Converter(storageType(), classID(), svcloc), AthMessaging(svcloc != 0 ? msgSvc() : 0, "CmxJetHitsByteStreamAuxCnv"), m_name("CmxJetHitsByteStreamAuxCnv"), m_readTool("LVL1BS::JepByteStreamV2Tool/JepByteStreamV2Tool") @@ -63,11 +63,13 @@ const CLID& CmxJetHitsByteStreamAuxCnv::classID() { return ClassID_traits<xAOD::CMXJetHitsAuxContainer>::ID(); } +long CmxJetHitsByteStreamAuxCnv::storageType() +{ + return ByteStreamAddress::storageType(); +} + // Init method gets all necessary services etc. -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif StatusCode CmxJetHitsByteStreamAuxCnv::initialize() { ATH_MSG_DEBUG( "Initializing " << m_name << " - package version " << PACKAGE_VERSION); diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxJetHitsByteStreamAuxCnv.h b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxJetHitsByteStreamAuxCnv.h index bfd78a1ea31b255498eb35407de0570cb1023e71..a0a3e4bf3e1af1bc4fc2f668f2efcd8faffc2fb8 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxJetHitsByteStreamAuxCnv.h +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxJetHitsByteStreamAuxCnv.h @@ -24,8 +24,6 @@ class StatusCode; template <typename> class CnvFactory; -// Externals -extern long ByteStream_StorageType; namespace LVL1BS { @@ -50,8 +48,8 @@ public: virtual StatusCode createRep(DataObject* pObj, IOpaqueAddress*& pAddr); // Storage type and class ID - virtual long repSvcType() const { return ByteStream_StorageType;} - static long storageType(){ return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } + static long storageType(); static const CLID& classID(); private: diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxJetHitsByteStreamxAODCnv.cxx b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxJetHitsByteStreamxAODCnv.cxx index b80710a9a7a344762c30ab132cb90435afbd92ae..826fed8b2fe6950fdbeda9002f820f3e7101d477 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxJetHitsByteStreamxAODCnv.cxx +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxJetHitsByteStreamxAODCnv.cxx @@ -32,7 +32,7 @@ namespace LVL1BS { CmxJetHitsByteStreamxAODCnv::CmxJetHitsByteStreamxAODCnv(ISvcLocator* svcloc) : - Converter(ByteStream_StorageType, classID(), svcloc), + Converter(storageType(), classID(), svcloc), AthMessaging(svcloc != 0 ? msgSvc() : 0, "CmxJetHitsByteStreamxAODCnv"), m_name("CmxJetHitsByteStreamxAODCnv") { @@ -45,11 +45,13 @@ const CLID& CmxJetHitsByteStreamxAODCnv::classID() { return ClassID_traits<xAOD::CMXJetHitsContainer>::ID(); } +long CmxJetHitsByteStreamxAODCnv::storageType() +{ + return ByteStreamAddress::storageType(); +} + // Init method gets all necessary services etc. -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif StatusCode CmxJetHitsByteStreamxAODCnv::initialize() { ATH_MSG_DEBUG( diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxJetHitsByteStreamxAODCnv.h b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxJetHitsByteStreamxAODCnv.h index d5c1ae4d800c9f3934d9bc61ae216d5a40728c1d..449fff92b0e0c1144bcaa0e970a66cb61b76ef0f 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxJetHitsByteStreamxAODCnv.h +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxJetHitsByteStreamxAODCnv.h @@ -22,8 +22,6 @@ class StatusCode; template <typename> class CnvFactory; class StoreGateSvc; -// Externals -extern long ByteStream_StorageType; namespace LVL1BS { /** ByteStream converter for CmxTob. @@ -45,8 +43,8 @@ public: virtual StatusCode createRep(DataObject* pObj, IOpaqueAddress*& pAddr); // Storage type and class ID - virtual long repSvcType() const { return ByteStream_StorageType;} - static long storageType(){ return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } + static long storageType(); static const CLID& classID(); diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxJetTobByteStreamAuxCnv.cxx b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxJetTobByteStreamAuxCnv.cxx index 45590a35156ff95288fd76bbe2e8a7e053636057..2a55c232867203f6e91fb4c9807460c442bba2f0 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxJetTobByteStreamAuxCnv.cxx +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxJetTobByteStreamAuxCnv.cxx @@ -52,7 +52,7 @@ namespace LVL1BS { CmxJetTobByteStreamAuxCnv::CmxJetTobByteStreamAuxCnv(ISvcLocator* svcloc) : - Converter(ByteStream_StorageType, classID(), svcloc), + Converter(storageType(), classID(), svcloc), AthMessaging(svcloc != 0 ? msgSvc() : 0, "CmxJetTobByteStreamAuxCnv"), m_name("CmxJetTobByteStreamAuxCnv"), m_readTool("LVL1BS::JepByteStreamV2Tool/JepByteStreamV2Tool") @@ -63,11 +63,13 @@ const CLID& CmxJetTobByteStreamAuxCnv::classID() { return ClassID_traits<xAOD::CMXJetTobAuxContainer>::ID(); } +long CmxJetTobByteStreamAuxCnv::storageType() +{ + return ByteStreamAddress::storageType(); +} + // Init method gets all necessary services etc. -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif StatusCode CmxJetTobByteStreamAuxCnv::initialize() { ATH_MSG_DEBUG( "Initializing " << m_name << " - package version " << PACKAGE_VERSION); diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxJetTobByteStreamAuxCnv.h b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxJetTobByteStreamAuxCnv.h index bf0a72051a39dcaed5c5f5cefebb89d2be27da8f..20809959d9bf3b40ad19038a6fb2edfbba7b05fe 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxJetTobByteStreamAuxCnv.h +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxJetTobByteStreamAuxCnv.h @@ -24,8 +24,6 @@ class StatusCode; template <typename> class CnvFactory; -// Externals -extern long ByteStream_StorageType; namespace LVL1BS { @@ -50,8 +48,8 @@ public: virtual StatusCode createRep(DataObject* pObj, IOpaqueAddress*& pAddr); // Storage type and class ID - virtual long repSvcType() const { return ByteStream_StorageType;} - static long storageType(){ return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } + static long storageType(); static const CLID& classID(); private: diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxJetTobByteStreamxAODCnv.cxx b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxJetTobByteStreamxAODCnv.cxx index c216a2890378ad6cb16f5fc8510aa9732ef0dd2b..326d52ed32e8e5a590dcabc7afbcb151e8205d0b 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxJetTobByteStreamxAODCnv.cxx +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxJetTobByteStreamxAODCnv.cxx @@ -32,7 +32,7 @@ namespace LVL1BS { CmxJetTobByteStreamxAODCnv::CmxJetTobByteStreamxAODCnv(ISvcLocator* svcloc) : - Converter(ByteStream_StorageType, classID(), svcloc), + Converter(storageType(), classID(), svcloc), AthMessaging(svcloc != 0 ? msgSvc() : 0, "CmxJetTobByteStreamxAODCnv"), m_name("CmxJetTobByteStreamxAODCnv") { @@ -45,11 +45,13 @@ const CLID& CmxJetTobByteStreamxAODCnv::classID() { return ClassID_traits<xAOD::CMXJetTobContainer>::ID(); } +long CmxJetTobByteStreamxAODCnv::storageType() +{ + return ByteStreamAddress::storageType(); +} + // Init method gets all necessary services etc. -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif StatusCode CmxJetTobByteStreamxAODCnv::initialize() { ATH_MSG_DEBUG( diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxJetTobByteStreamxAODCnv.h b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxJetTobByteStreamxAODCnv.h index b13fa32e113ee9031a48ec35a551334ceddee6b5..35895447b3c0c88258dd376a026ee3c44863443f 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxJetTobByteStreamxAODCnv.h +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxJetTobByteStreamxAODCnv.h @@ -22,8 +22,6 @@ class StatusCode; template <typename> class CnvFactory; class StoreGateSvc; -// Externals -extern long ByteStream_StorageType; namespace LVL1BS { /** ByteStream converter for CmxTob. @@ -45,8 +43,8 @@ public: virtual StatusCode createRep(DataObject* pObj, IOpaqueAddress*& pAddr); // Storage type and class ID - virtual long repSvcType() const { return ByteStream_StorageType;} - static long storageType(){ return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } + static long storageType(); static const CLID& classID(); diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxRoIByteStreamAuxCnv.cxx b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxRoIByteStreamAuxCnv.cxx index 5e4dd99b4f51e89d9026cd0321d770f577d4e84e..15cc5487a9fa7232e1d191b97032f6ca1f7d7de1 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxRoIByteStreamAuxCnv.cxx +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxRoIByteStreamAuxCnv.cxx @@ -52,7 +52,7 @@ namespace LVL1BS { CmxRoIByteStreamAuxCnv::CmxRoIByteStreamAuxCnv(ISvcLocator* svcloc) : - Converter(ByteStream_StorageType, classID(), svcloc), + Converter(storageType(), classID(), svcloc), AthMessaging(svcloc != 0 ? msgSvc() : 0, "CmxRoIByteStreamAuxCnv"), m_name("CmxRoIByteStreamAuxCnv"), m_readTool("LVL1BS::JepRoiByteStreamV2Tool/JepRoiByteStreamV2Tool") @@ -63,11 +63,13 @@ const CLID& CmxRoIByteStreamAuxCnv::classID() { return ClassID_traits<xAOD::CMXRoIAuxContainer>::ID(); } +long CmxRoIByteStreamAuxCnv::storageType() +{ + return ByteStreamAddress::storageType(); +} + // Init method gets all necessary services etc. -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif StatusCode CmxRoIByteStreamAuxCnv::initialize() { ATH_MSG_DEBUG( "Initializing " << m_name << " - package version " << PACKAGE_VERSION); diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxRoIByteStreamAuxCnv.h b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxRoIByteStreamAuxCnv.h index b97f1888a92aec2055337f5861f70815ea9a5489..64427570ba7780dde9c1602b908ab6446a4196e2 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxRoIByteStreamAuxCnv.h +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxRoIByteStreamAuxCnv.h @@ -24,8 +24,6 @@ class StatusCode; template <typename> class CnvFactory; -// Externals -extern long ByteStream_StorageType; namespace LVL1BS { @@ -50,8 +48,8 @@ public: virtual StatusCode createRep(DataObject* pObj, IOpaqueAddress*& pAddr); // Storage type and class ID - virtual long repSvcType() const { return ByteStream_StorageType;} - static long storageType(){ return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } + static long storageType(); static const CLID& classID(); private: diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxRoIByteStreamxAODCnv.cxx b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxRoIByteStreamxAODCnv.cxx index 3fc74ed9903d05101916862065d58d8cbc56ee3f..dcf8927db47a7806a8ddee34cd12aec14f9d62e1 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxRoIByteStreamxAODCnv.cxx +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxRoIByteStreamxAODCnv.cxx @@ -32,7 +32,7 @@ namespace LVL1BS { CmxRoIByteStreamxAODCnv::CmxRoIByteStreamxAODCnv(ISvcLocator* svcloc) : - Converter(ByteStream_StorageType, classID(), svcloc), + Converter(storageType(), classID(), svcloc), AthMessaging(svcloc != 0 ? msgSvc() : 0, "CmxRoIByteStreamxAODCnv"), m_name("CmxRoIByteStreamxAODCnv") { @@ -45,11 +45,13 @@ const CLID& CmxRoIByteStreamxAODCnv::classID() { return ClassID_traits<xAOD::CMXRoIContainer>::ID(); } +long CmxRoIByteStreamxAODCnv::storageType() +{ + return ByteStreamAddress::storageType(); +} + // Init method gets all necessary services etc. -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif StatusCode CmxRoIByteStreamxAODCnv::initialize() { ATH_MSG_DEBUG( diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxRoIByteStreamxAODCnv.h b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxRoIByteStreamxAODCnv.h index f8e3904fd35b25f880702b98e0ea412d4d95d90e..8c90fc6df2c02298d5ecdb205b958b4944f3b33a 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxRoIByteStreamxAODCnv.h +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CmxRoIByteStreamxAODCnv.h @@ -22,8 +22,6 @@ class StatusCode; template <typename> class CnvFactory; class StoreGateSvc; -// Externals -extern long ByteStream_StorageType; namespace LVL1BS { /** ByteStream converter for CmxTob. @@ -45,8 +43,8 @@ public: virtual StatusCode createRep(DataObject* pObj, IOpaqueAddress*& pAddr); // Storage type and class ID - virtual long repSvcType() const { return ByteStream_StorageType;} - static long storageType(){ return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } + static long storageType(); static const CLID& classID(); diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CpmTobRoiByteStreamAuxCnv.cxx b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CpmTobRoiByteStreamAuxCnv.cxx index 607c562e07540e44be38a5251fdc5407385577bc..e6d785af094bc0ed1eec80da83847761c674e81d 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CpmTobRoiByteStreamAuxCnv.cxx +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CpmTobRoiByteStreamAuxCnv.cxx @@ -52,7 +52,7 @@ namespace LVL1BS { CpmTobRoiByteStreamAuxCnv::CpmTobRoiByteStreamAuxCnv(ISvcLocator* svcloc) : - Converter(ByteStream_StorageType, classID(), svcloc), + Converter(storageType(), classID(), svcloc), AthMessaging(svcloc != 0 ? msgSvc() : 0, "CpmTobRoiByteStreamAuxCnv"), m_name("CpmTobRoiByteStreamAuxCnv"), m_readTool("LVL1BS::CpmRoiByteStreamV2Tool/CpmRoiByteStreamV2Tool") @@ -63,11 +63,13 @@ const CLID& CpmTobRoiByteStreamAuxCnv::classID() { return ClassID_traits<xAOD::CPMTobRoIAuxContainer>::ID(); } +long CpmTobRoiByteStreamAuxCnv::storageType() +{ + return ByteStreamAddress::storageType(); +} + // Init method gets all necessary services etc. -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif StatusCode CpmTobRoiByteStreamAuxCnv::initialize() { ATH_MSG_DEBUG( "Initializing " << m_name << " - package version " << PACKAGE_VERSION); diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CpmTobRoiByteStreamAuxCnv.h b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CpmTobRoiByteStreamAuxCnv.h index b0ea22ddd844e7f7a6ca97368a8b93c6ed7c4de9..d877d17bca7c7633574e5351ec540e110b29d009 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CpmTobRoiByteStreamAuxCnv.h +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CpmTobRoiByteStreamAuxCnv.h @@ -24,8 +24,6 @@ class StatusCode; template <typename> class CnvFactory; -// Externals -extern long ByteStream_StorageType; namespace LVL1BS { @@ -50,8 +48,8 @@ public: virtual StatusCode createRep(DataObject* pObj, IOpaqueAddress*& pAddr); // Storage type and class ID - virtual long repSvcType() const { return ByteStream_StorageType;} - static long storageType(){ return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } + static long storageType(); static const CLID& classID(); private: diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CpmTobRoiByteStreamxAODCnv.cxx b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CpmTobRoiByteStreamxAODCnv.cxx index 5667258532c6da88a39009e586451e095296fef1..0f1ff6a0529c4d44411166bbb551bd0fff51b49a 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CpmTobRoiByteStreamxAODCnv.cxx +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CpmTobRoiByteStreamxAODCnv.cxx @@ -32,7 +32,7 @@ namespace LVL1BS { CpmTobRoiByteStreamxAODCnv::CpmTobRoiByteStreamxAODCnv(ISvcLocator* svcloc) : - Converter(ByteStream_StorageType, classID(), svcloc), + Converter(storageType(), classID(), svcloc), AthMessaging(svcloc != 0 ? msgSvc() : 0, "CpmTobRoiByteStreamxAODCnv"), m_name("CpmTobRoiByteStreamxAODCnv") { @@ -45,11 +45,13 @@ const CLID& CpmTobRoiByteStreamxAODCnv::classID() { return ClassID_traits<xAOD::CPMTobRoIContainer>::ID(); } +long CpmTobRoiByteStreamxAODCnv::storageType() +{ + return ByteStreamAddress::storageType(); +} + // Init method gets all necessary services etc. -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif StatusCode CpmTobRoiByteStreamxAODCnv::initialize() { ATH_MSG_DEBUG( diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CpmTobRoiByteStreamxAODCnv.h b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CpmTobRoiByteStreamxAODCnv.h index 5f9999263bf4505ef7849b8192dd26d7d5dae631..29ee3cce3b90cdda3a98657bcf0cb2a8181e9d8b 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CpmTobRoiByteStreamxAODCnv.h +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CpmTobRoiByteStreamxAODCnv.h @@ -22,8 +22,6 @@ class StatusCode; template <typename> class CnvFactory; class StoreGateSvc; -// Externals -extern long ByteStream_StorageType; namespace LVL1BS { /** ByteStream converter for CmxTob. @@ -45,8 +43,8 @@ public: virtual StatusCode createRep(DataObject* pObj, IOpaqueAddress*& pAddr); // Storage type and class ID - virtual long repSvcType() const { return ByteStream_StorageType;} - static long storageType(){ return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } + static long storageType(); static const CLID& classID(); diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CpmTowerByteStreamAuxCnv.cxx b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CpmTowerByteStreamAuxCnv.cxx index ce4f208afc4d3b2c35c8bc65123457e428d027aa..6cd78f179eb95b30bbdd62634d6eef64e900c88e 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CpmTowerByteStreamAuxCnv.cxx +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CpmTowerByteStreamAuxCnv.cxx @@ -54,7 +54,7 @@ namespace LVL1BS { CpmTowerByteStreamAuxCnv::CpmTowerByteStreamAuxCnv(ISvcLocator* svcloc) : - Converter(ByteStream_StorageType, classID(), svcloc), + Converter(storageType(), classID(), svcloc), AthMessaging(svcloc != 0 ? msgSvc() : 0, "CpmTowerByteStreamAuxCnv"), m_name("CpmTowerByteStreamAuxCnv"), m_cpmReadTool("LVL1BS::CpByteStreamV2Tool/CpByteStreamV2Tool") @@ -65,11 +65,13 @@ const CLID& CpmTowerByteStreamAuxCnv::classID() { return ClassID_traits<xAOD::CPMTowerAuxContainer>::ID(); } +long CpmTowerByteStreamAuxCnv::storageType() +{ + return ByteStreamAddress::storageType(); +} + // Init method gets all necessary services etc. -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif StatusCode CpmTowerByteStreamAuxCnv::initialize() { ATH_MSG_DEBUG( "Initializing " << m_name << " - package version " << PACKAGE_VERSION); diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CpmTowerByteStreamAuxCnv.h b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CpmTowerByteStreamAuxCnv.h index ffd49a943e329d4e25aca0974bc2bf08291d4e09..9d51145c0d9f66f626da5995daa39a3d08008ef5 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CpmTowerByteStreamAuxCnv.h +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CpmTowerByteStreamAuxCnv.h @@ -24,8 +24,6 @@ class StatusCode; template <typename> class CnvFactory; -// Externals -extern long ByteStream_StorageType; namespace LVL1BS { @@ -50,8 +48,8 @@ public: virtual StatusCode createRep(DataObject* pObj, IOpaqueAddress*& pAddr); // Storage type and class ID - virtual long repSvcType() const { return ByteStream_StorageType;} - static long storageType(){ return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } + static long storageType(); static const CLID& classID(); private: diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CpmTowerByteStreamxAODCnv.cxx b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CpmTowerByteStreamxAODCnv.cxx index d631210bc62dff298fa081807268e8ab96af892c..4339d333e156795f9f10c5f7be3072994df32925 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CpmTowerByteStreamxAODCnv.cxx +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CpmTowerByteStreamxAODCnv.cxx @@ -32,7 +32,7 @@ namespace LVL1BS { CpmTowerByteStreamxAODCnv::CpmTowerByteStreamxAODCnv(ISvcLocator* svcloc) : - Converter(ByteStream_StorageType, classID(), svcloc), + Converter(storageType(), classID(), svcloc), AthMessaging(svcloc != 0 ? msgSvc() : 0, "CpmTowerByteStreamxAODCnv"), m_name("CpmTowerByteStreamxAODCnv") { @@ -45,11 +45,13 @@ const CLID& CpmTowerByteStreamxAODCnv::classID() { return ClassID_traits<xAOD::CPMTowerContainer>::ID(); } +long CpmTowerByteStreamxAODCnv::storageType() +{ + return ByteStreamAddress::storageType(); +} + // Init method gets all necessary services etc. -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif StatusCode CpmTowerByteStreamxAODCnv::initialize() { ATH_MSG_DEBUG( diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CpmTowerByteStreamxAODCnv.h b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CpmTowerByteStreamxAODCnv.h index 0401231c27588e06810397fb04c94fe4ebf42b5e..7522e24466d95be37b8754ef263476f276b67834 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CpmTowerByteStreamxAODCnv.h +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/CpmTowerByteStreamxAODCnv.h @@ -22,8 +22,6 @@ class StatusCode; template <typename> class CnvFactory; class StoreGateSvc; -// Externals -extern long ByteStream_StorageType; namespace LVL1BS { /** ByteStream converter for CpmTowers. @@ -45,8 +43,8 @@ public: virtual StatusCode createRep(DataObject* pObj, IOpaqueAddress*& pAddr); // Storage type and class ID - virtual long repSvcType() const { return ByteStream_StorageType;} - static long storageType(){ return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } + static long storageType(); static const CLID& classID(); diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/JemEtSumsByteStreamAuxCnv.cxx b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/JemEtSumsByteStreamAuxCnv.cxx index 1b2f3964548a948bfaebcb561d85412825add1fb..f98210fb5e2882b86943b9b172244083d0b720d1 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/JemEtSumsByteStreamAuxCnv.cxx +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/JemEtSumsByteStreamAuxCnv.cxx @@ -52,7 +52,7 @@ namespace LVL1BS { JemEtSumsByteStreamAuxCnv::JemEtSumsByteStreamAuxCnv(ISvcLocator* svcloc) : - Converter(ByteStream_StorageType, classID(), svcloc), + Converter(storageType(), classID(), svcloc), AthMessaging(svcloc != 0 ? msgSvc() : 0, "JemEtSumsByteStreamAuxCnv"), m_name("JemEtSumsByteStreamAuxCnv"), m_readTool("LVL1BS::JepByteStreamV2Tool/JepByteStreamV2Tool") @@ -63,11 +63,13 @@ const CLID& JemEtSumsByteStreamAuxCnv::classID() { return ClassID_traits<xAOD::JEMEtSumsAuxContainer>::ID(); } +long JemEtSumsByteStreamAuxCnv::storageType() +{ + return ByteStreamAddress::storageType(); +} + // Init method gets all necessary services etc. -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif StatusCode JemEtSumsByteStreamAuxCnv::initialize() { ATH_MSG_DEBUG( "Initializing " << m_name << " - package version " << PACKAGE_VERSION); diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/JemEtSumsByteStreamAuxCnv.h b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/JemEtSumsByteStreamAuxCnv.h index 975ada118f706b8e6e5c0df3e01eb046fe39069c..13dcff333d5615252d75c357a1ed351818a4965d 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/JemEtSumsByteStreamAuxCnv.h +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/JemEtSumsByteStreamAuxCnv.h @@ -24,8 +24,6 @@ class StatusCode; template <typename> class CnvFactory; -// Externals -extern long ByteStream_StorageType; namespace LVL1BS { @@ -50,8 +48,8 @@ public: virtual StatusCode createRep(DataObject* pObj, IOpaqueAddress*& pAddr); // Storage type and class ID - virtual long repSvcType() const { return ByteStream_StorageType;} - static long storageType(){ return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } + static long storageType(); static const CLID& classID(); private: diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/JemEtSumsByteStreamxAODCnv.cxx b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/JemEtSumsByteStreamxAODCnv.cxx index 7dca3de694ccbeb9192639664fac1c583a26f439..c0a7bc01051a38cebb47f5ec70008bcbf4fcf3f5 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/JemEtSumsByteStreamxAODCnv.cxx +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/JemEtSumsByteStreamxAODCnv.cxx @@ -32,7 +32,7 @@ namespace LVL1BS { JemEtSumsByteStreamxAODCnv::JemEtSumsByteStreamxAODCnv(ISvcLocator* svcloc) : - Converter(ByteStream_StorageType, classID(), svcloc), + Converter(storageType(), classID(), svcloc), AthMessaging(svcloc != 0 ? msgSvc() : 0, "JemEtSumsByteStreamxAODCnv"), m_name("JemEtSumsByteStreamxAODCnv") { @@ -45,11 +45,13 @@ const CLID& JemEtSumsByteStreamxAODCnv::classID() { return ClassID_traits<xAOD::JEMEtSumsContainer>::ID(); } +long JemEtSumsByteStreamxAODCnv::storageType() +{ + return ByteStreamAddress::storageType(); +} + // Init method gets all necessary services etc. -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif StatusCode JemEtSumsByteStreamxAODCnv::initialize() { ATH_MSG_DEBUG( diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/JemEtSumsByteStreamxAODCnv.h b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/JemEtSumsByteStreamxAODCnv.h index e152ff4731cdeb96c7abced527e6ece9bb02a7bd..9f9952207a433cb54bc7398e2901fab2b9eafd6b 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/JemEtSumsByteStreamxAODCnv.h +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/JemEtSumsByteStreamxAODCnv.h @@ -22,8 +22,6 @@ class StatusCode; template <typename> class CnvFactory; class StoreGateSvc; -// Externals -extern long ByteStream_StorageType; namespace LVL1BS { /** ByteStream converter for CmxTob. @@ -45,8 +43,8 @@ public: virtual StatusCode createRep(DataObject* pObj, IOpaqueAddress*& pAddr); // Storage type and class ID - virtual long repSvcType() const { return ByteStream_StorageType;} - static long storageType(){ return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } + static long storageType(); static const CLID& classID(); diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/JemTobRoiByteStreamAuxCnv.cxx b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/JemTobRoiByteStreamAuxCnv.cxx index 5fd93bb48073322acf6728028c9aa43c79e34984..d3ffeb107d050b21c92b621ea8c68bbf347ff87a 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/JemTobRoiByteStreamAuxCnv.cxx +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/JemTobRoiByteStreamAuxCnv.cxx @@ -52,7 +52,7 @@ namespace LVL1BS { JemTobRoiByteStreamAuxCnv::JemTobRoiByteStreamAuxCnv(ISvcLocator* svcloc) : - Converter(ByteStream_StorageType, classID(), svcloc), + Converter(storageType(), classID(), svcloc), AthMessaging(svcloc != 0 ? msgSvc() : 0, "JemTobRoiByteStreamAuxCnv"), m_name("JemTobRoiByteStreamAuxCnv"), m_readTool("LVL1BS::JepRoiByteStreamV2Tool/JepRoiByteStreamV2Tool") @@ -63,11 +63,13 @@ const CLID& JemTobRoiByteStreamAuxCnv::classID() { return ClassID_traits<xAOD::JEMTobRoIAuxContainer>::ID(); } +long JemTobRoiByteStreamAuxCnv::storageType() +{ + return ByteStreamAddress::storageType(); +} + // Init method gets all necessary services etc. -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif StatusCode JemTobRoiByteStreamAuxCnv::initialize() { ATH_MSG_DEBUG( "Initializing " << m_name << " - package version " << PACKAGE_VERSION); diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/JemTobRoiByteStreamAuxCnv.h b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/JemTobRoiByteStreamAuxCnv.h index 0206ffc1b8d8d046b203717ac58b30e65e8a0ec5..2bcfc8881232faa5295cf6f8525d80be0de7a6c8 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/JemTobRoiByteStreamAuxCnv.h +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/JemTobRoiByteStreamAuxCnv.h @@ -24,8 +24,6 @@ class StatusCode; template <typename> class CnvFactory; -// Externals -extern long ByteStream_StorageType; namespace LVL1BS { @@ -50,8 +48,8 @@ public: virtual StatusCode createRep(DataObject* pObj, IOpaqueAddress*& pAddr); // Storage type and class ID - virtual long repSvcType() const { return ByteStream_StorageType;} - static long storageType(){ return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } + static long storageType(); static const CLID& classID(); private: diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/JemTobRoiByteStreamxAODCnv.cxx b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/JemTobRoiByteStreamxAODCnv.cxx index 9805a812d23f7de64467b5e1844e3cb4b9fc3c3b..30f68322b4e4267b394a63cba33131e9d43c0c57 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/JemTobRoiByteStreamxAODCnv.cxx +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/JemTobRoiByteStreamxAODCnv.cxx @@ -32,7 +32,7 @@ namespace LVL1BS { JemTobRoiByteStreamxAODCnv::JemTobRoiByteStreamxAODCnv(ISvcLocator* svcloc) : - Converter(ByteStream_StorageType, classID(), svcloc), + Converter(storageType(), classID(), svcloc), AthMessaging(svcloc != 0 ? msgSvc() : 0, "JemTobRoiByteStreamxAODCnv"), m_name("JemTobRoiByteStreamxAODCnv") { @@ -45,11 +45,13 @@ const CLID& JemTobRoiByteStreamxAODCnv::classID() { return ClassID_traits<xAOD::JEMTobRoIContainer>::ID(); } +long JemTobRoiByteStreamxAODCnv::storageType() +{ + return ByteStreamAddress::storageType(); +} + // Init method gets all necessary services etc. -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif StatusCode JemTobRoiByteStreamxAODCnv::initialize() { ATH_MSG_DEBUG( diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/JemTobRoiByteStreamxAODCnv.h b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/JemTobRoiByteStreamxAODCnv.h index 7357271f9c7d5062daf1b3761d6c3c5ccac97897..715edd36ca468536cb4012e46f21e7cd4243a8cd 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/JemTobRoiByteStreamxAODCnv.h +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/JemTobRoiByteStreamxAODCnv.h @@ -22,8 +22,6 @@ class StatusCode; template <typename> class CnvFactory; class StoreGateSvc; -// Externals -extern long ByteStream_StorageType; namespace LVL1BS { /** ByteStream converter for CmxTob. @@ -45,8 +43,8 @@ public: virtual StatusCode createRep(DataObject* pObj, IOpaqueAddress*& pAddr); // Storage type and class ID - virtual long repSvcType() const { return ByteStream_StorageType;} - static long storageType(){ return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } + static long storageType(); static const CLID& classID(); diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/JetElementByteStreamAuxCnv.cxx b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/JetElementByteStreamAuxCnv.cxx index 885f7e8d09e195c6ca3da42eda15d9a94633f233..2c4c3defa1ccb2cbfcc8d18c886d7987eaa3eb1d 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/JetElementByteStreamAuxCnv.cxx +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/JetElementByteStreamAuxCnv.cxx @@ -52,7 +52,7 @@ namespace LVL1BS { JetElementByteStreamAuxCnv::JetElementByteStreamAuxCnv(ISvcLocator* svcloc) : - Converter(ByteStream_StorageType, classID(), svcloc), + Converter(storageType(), classID(), svcloc), AthMessaging(svcloc != 0 ? msgSvc() : 0, "JetElementByteStreamAuxCnv"), m_name("JetElementByteStreamAuxCnv"), m_readTool("LVL1BS::JepByteStreamV2Tool/JepByteStreamV2Tool") @@ -63,11 +63,13 @@ const CLID& JetElementByteStreamAuxCnv::classID() { return ClassID_traits<xAOD::JetElementAuxContainer>::ID(); } +long JetElementByteStreamAuxCnv::storageType() +{ + return ByteStreamAddress::storageType(); +} + // Init method gets all necessary services etc. -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif StatusCode JetElementByteStreamAuxCnv::initialize() { ATH_MSG_DEBUG( "Initializing " << m_name << " - package version " << PACKAGE_VERSION); diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/JetElementByteStreamAuxCnv.h b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/JetElementByteStreamAuxCnv.h index f74316cfa191f89f529c09ad325f5ab423f4888f..290f2a551c8a91dd6c7228953a26ecec18c54f50 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/JetElementByteStreamAuxCnv.h +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/JetElementByteStreamAuxCnv.h @@ -24,8 +24,6 @@ class StatusCode; template <typename> class CnvFactory; -// Externals -extern long ByteStream_StorageType; namespace LVL1BS { @@ -50,8 +48,8 @@ public: virtual StatusCode createRep(DataObject* pObj, IOpaqueAddress*& pAddr); // Storage type and class ID - virtual long repSvcType() const { return ByteStream_StorageType;} - static long storageType(){ return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } + static long storageType(); static const CLID& classID(); private: diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/JetElementByteStreamxAODCnv.cxx b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/JetElementByteStreamxAODCnv.cxx index 8dffbf66f1277e6a12231f8a22d55774a37cc5f0..26111b5f66c66309066ee114549c3f56ffe91f59 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/JetElementByteStreamxAODCnv.cxx +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/JetElementByteStreamxAODCnv.cxx @@ -32,7 +32,7 @@ namespace LVL1BS { JetElementByteStreamxAODCnv::JetElementByteStreamxAODCnv(ISvcLocator* svcloc) : - Converter(ByteStream_StorageType, classID(), svcloc), + Converter(storageType(), classID(), svcloc), AthMessaging(svcloc != 0 ? msgSvc() : 0, "JetElementByteStreamxAODCnv"), m_name("JetElementByteStreamxAODCnv") { @@ -45,11 +45,13 @@ const CLID& JetElementByteStreamxAODCnv::classID() { return ClassID_traits<xAOD::JetElementContainer>::ID(); } +long JetElementByteStreamxAODCnv::storageType() +{ + return ByteStreamAddress::storageType(); +} + // Init method gets all necessary services etc. -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif StatusCode JetElementByteStreamxAODCnv::initialize() { ATH_MSG_DEBUG( diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/JetElementByteStreamxAODCnv.h b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/JetElementByteStreamxAODCnv.h index c0ae4ea347815df765e20012881d50b421a56578..e73191ef243a2781ba9c005c00e7a741704f0b2e 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/JetElementByteStreamxAODCnv.h +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/JetElementByteStreamxAODCnv.h @@ -22,8 +22,6 @@ class StatusCode; template <typename> class CnvFactory; class StoreGateSvc; -// Externals -extern long ByteStream_StorageType; namespace LVL1BS { /** ByteStream converter for JetElement. @@ -45,8 +43,8 @@ public: virtual StatusCode createRep(DataObject* pObj, IOpaqueAddress*& pAddr); // Storage type and class ID - virtual long repSvcType() const { return ByteStream_StorageType;} - static long storageType(){ return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } + static long storageType(); static const CLID& classID(); diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/L1CaloByteStreamAuxCnv.h b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/L1CaloByteStreamAuxCnv.h index f6ef770b972a2bcd6cbb4c45dc7d2c91009aa61c..effa5d1b2bf726f01cd32d51da911847a6b748c9 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/L1CaloByteStreamAuxCnv.h +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/L1CaloByteStreamAuxCnv.h @@ -24,8 +24,6 @@ class StatusCode; template <typename> class CnvFactory; -// Externals -extern long ByteStream_StorageType; namespace LVL1BS { @@ -51,8 +49,8 @@ public: virtual StatusCode createRep(DataObject* pObj, IOpaqueAddress*& pAddr); // Storage type and class ID - virtual long repSvcType() const { return ByteStream_StorageType;} - static long storageType(){ return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } + static long storageType(); static const CLID& classID(); diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/L1CaloByteStreamAuxCnv.icc b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/L1CaloByteStreamAuxCnv.icc index b72f52d3154cd45799f8578aaafb85959b505fe7..a0bf9e62d4c4c827ce504547f4b4a707b9b09c4b 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/L1CaloByteStreamAuxCnv.icc +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/L1CaloByteStreamAuxCnv.icc @@ -31,7 +31,7 @@ namespace LVL1BS { template<typename ContainerT, typename AuxContainerT> L1CaloByteStreamAuxCnv<ContainerT, AuxContainerT>::L1CaloByteStreamAuxCnv(ISvcLocator* svcloc) : - Converter(ByteStream_StorageType, classID(), svcloc), + Converter(storageType(), classID(), svcloc), AthMessaging(svcloc != 0 ? msgSvc() : 0, "L1CaloByteStreamAuxCnv"), m_name("L1CaloByteStreamAuxCnv"), m_readTool("LVL1BS::L1CaloByteStreamReadTool/L1CaloByteStreamReadTool") { @@ -44,11 +44,13 @@ const CLID& L1CaloByteStreamAuxCnv<ContainerT,AuxContainerT>::classID() { return ClassID_traits<ContainerT>::ID(); } +long L1CaloByteStreamAuxCnv<ContainerT,AuxContainerT>::storageType() +{ + return ByteStreamAddress::storageType(); +} + // Init method gets all necessary services etc. -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif template<typename ContainerT, typename AuxContainerT> StatusCode L1CaloByteStreamAuxCnv<ContainerT, AuxContainerT>::initialize() { diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/PpmByteStreamAuxCnv.cxx b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/PpmByteStreamAuxCnv.cxx index f7021bd104d4339da2cc887728d067699f535bef..8f28106dad76d55afc1d09d2d663e51e79ec80f8 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/PpmByteStreamAuxCnv.cxx +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/PpmByteStreamAuxCnv.cxx @@ -36,7 +36,7 @@ namespace LVL1BS { PpmByteStreamAuxCnv::PpmByteStreamAuxCnv(ISvcLocator* svcloc) : - Converter(ByteStream_StorageType, classID(), svcloc), + Converter(storageType(), classID(), svcloc), AthMessaging(svcloc != 0 ? msgSvc() : 0, "PpmByteStreamAuxCnv"), m_name("PpmByteStreamAuxCnv"), m_readTool("LVL1BS::PpmByteStreamReadV1V2Tool/PpmByteStreamReadV1V2Tool"), @@ -48,11 +48,13 @@ const CLID& PpmByteStreamAuxCnv::classID() { return ClassID_traits<xAOD::TriggerTowerAuxContainer>::ID(); } +long PpmByteStreamAuxCnv::storageType() +{ + return ByteStreamAddress::storageType(); +} + // Init method gets all necessary services etc. -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif StatusCode PpmByteStreamAuxCnv::initialize() { ATH_MSG_DEBUG( "Initializing " << m_name << " - package version " << PACKAGE_VERSION); diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/PpmByteStreamAuxCnv.h b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/PpmByteStreamAuxCnv.h index 1fb8d5e28f3cb00bad8d62cc2767dd7fe09ed9e4..8ae7542d77f761aa187ae1b27900e9f960d3608e 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/PpmByteStreamAuxCnv.h +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/PpmByteStreamAuxCnv.h @@ -22,8 +22,6 @@ class StatusCode; template <typename> class CnvFactory; -// Externals -extern long ByteStream_StorageType; #include "ZdcByteStream/ZdcByteStreamReadV1V2Tool.h" @@ -50,8 +48,8 @@ public: virtual StatusCode createRep(DataObject* pObj, IOpaqueAddress*& pAddr); // Storage type and class ID - virtual long repSvcType() const { return ByteStream_StorageType;} - static long storageType(){ return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } + static long storageType(); static const CLID& classID(); private: diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/PpmByteStreamReadV1V2Tool.cxx b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/PpmByteStreamReadV1V2Tool.cxx index 5a926c38333d7a97d2442723343185c32d12daf5..c67620762b464d23289a2ab013be95dd64c12b26 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/PpmByteStreamReadV1V2Tool.cxx +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/PpmByteStreamReadV1V2Tool.cxx @@ -89,9 +89,6 @@ PpmByteStreamReadV1V2Tool::PpmByteStreamReadV1V2Tool(const std::string& name /*= // =========================================================================== // Initialize -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif StatusCode PpmByteStreamReadV1V2Tool::initialize() { ATH_MSG_INFO( diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/PpmByteStreamxAODCnv.cxx b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/PpmByteStreamxAODCnv.cxx index 8ef8d161bda43d73156391b06cb4040f3cc2a29d..d15bada241012105bfa6576c5bc8f447af752988 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/PpmByteStreamxAODCnv.cxx +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/PpmByteStreamxAODCnv.cxx @@ -33,7 +33,7 @@ namespace LVL1BS { PpmByteStreamxAODCnv::PpmByteStreamxAODCnv(ISvcLocator* svcloc) : - Converter(ByteStream_StorageType, classID(), svcloc), + Converter(storageType(), classID(), svcloc), AthMessaging(svcloc != 0 ? msgSvc() : 0, "PpmByteStreamxAODCnv"), m_name("PpmByteStreamxAODCnv") { @@ -46,11 +46,13 @@ const CLID& PpmByteStreamxAODCnv::classID() { return ClassID_traits<xAOD::TriggerTowerContainer>::ID(); } +long PpmByteStreamxAODCnv::storageType() +{ + return ByteStreamAddress::storageType(); +} + // Init method gets all necessary services etc. -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif StatusCode PpmByteStreamxAODCnv::initialize() { ATH_MSG_DEBUG( diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/PpmByteStreamxAODCnv.h b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/PpmByteStreamxAODCnv.h index 5e6b42981e0647ebc8ffca4f4c2e641ca0c64eda..72e1eefbacb4f50248d76973180229c47d64b6f6 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/PpmByteStreamxAODCnv.h +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/PpmByteStreamxAODCnv.h @@ -26,8 +26,6 @@ template <typename> class CnvFactory; class StoreGateSvc; -// Externals -extern long ByteStream_StorageType; @@ -53,8 +51,8 @@ public: virtual StatusCode createRep(DataObject* pObj, IOpaqueAddress*& pAddr); // Storage type and class ID - virtual long repSvcType() const { return ByteStream_StorageType;} - static long storageType(){ return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } + static long storageType(); static const CLID& classID(); diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/RodHeaderByteStreamAuxCnv.cxx b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/RodHeaderByteStreamAuxCnv.cxx index e61d084648f8fd5aa656370f13940baaa589d94f..b710f74e30721d59e386062fab87dda9fd4e5b49 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/RodHeaderByteStreamAuxCnv.cxx +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/RodHeaderByteStreamAuxCnv.cxx @@ -52,7 +52,7 @@ namespace LVL1BS { RodHeaderByteStreamAuxCnv::RodHeaderByteStreamAuxCnv(ISvcLocator* svcloc) : - Converter(ByteStream_StorageType, classID(), svcloc), + Converter(storageType(), classID(), svcloc), AthMessaging(svcloc != 0 ? msgSvc() : 0, "RodHeaderByteStreamAuxCnv"), m_name("RodHeaderByteStreamAuxCnv"), m_readTool("LVL1BS::RodHeaderByteStreamTool/RodHeaderByteStreamTool") @@ -63,11 +63,13 @@ const CLID& RodHeaderByteStreamAuxCnv::classID() { return ClassID_traits<xAOD::RODHeaderAuxContainer>::ID(); } +long RodHeaderByteStreamAuxCnv::storageType() +{ + return ByteStreamAddress::storageType(); +} + // Init method gets all necessary services etc. -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif StatusCode RodHeaderByteStreamAuxCnv::initialize() { ATH_MSG_DEBUG( "Initializing " << m_name << " - package version " << PACKAGE_VERSION); diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/RodHeaderByteStreamAuxCnv.h b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/RodHeaderByteStreamAuxCnv.h index d2c292baac82a04da01f85c50388dea8d9433ad0..27b5aa4da4707555652a4d81c3dbf6df5caef111 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/RodHeaderByteStreamAuxCnv.h +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/RodHeaderByteStreamAuxCnv.h @@ -24,8 +24,6 @@ class StatusCode; template <typename> class CnvFactory; -// Externals -extern long ByteStream_StorageType; namespace LVL1BS { @@ -50,8 +48,8 @@ public: virtual StatusCode createRep(DataObject* pObj, IOpaqueAddress*& pAddr); // Storage type and class ID - virtual long repSvcType() const { return ByteStream_StorageType;} - static long storageType(){ return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } + static long storageType(); static const CLID& classID(); private: diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/RodHeaderByteStreamxAODCnv.cxx b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/RodHeaderByteStreamxAODCnv.cxx index 99273413253c4221a879d7230c19b79af8e56448..6dafd3f4d4590cbc43bf2c585427eb03f534474f 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/RodHeaderByteStreamxAODCnv.cxx +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/RodHeaderByteStreamxAODCnv.cxx @@ -32,7 +32,7 @@ namespace LVL1BS { RodHeaderByteStreamxAODCnv::RodHeaderByteStreamxAODCnv(ISvcLocator* svcloc) : - Converter(ByteStream_StorageType, classID(), svcloc), + Converter(storageType(), classID(), svcloc), AthMessaging(svcloc != 0 ? msgSvc() : 0, "RodHeaderByteStreamxAODCnv"), m_name("RodHeaderByteStreamxAODCnv") { @@ -45,11 +45,13 @@ const CLID& RodHeaderByteStreamxAODCnv::classID() { return ClassID_traits<xAOD::RODHeaderContainer>::ID(); } +long RodHeaderByteStreamxAODCnv::storageType() +{ + return ByteStreamAddress::storageType(); +} + // Init method gets all necessary services etc. -#ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "unknown" -#endif StatusCode RodHeaderByteStreamxAODCnv::initialize() { ATH_MSG_DEBUG( diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/RodHeaderByteStreamxAODCnv.h b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/RodHeaderByteStreamxAODCnv.h index b9a4e91b93e31a99b822988d32fea6b3168e1ce0..9095f3909b5c0d6220a4ad40fb3e0a333edde35f 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/RodHeaderByteStreamxAODCnv.h +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/RodHeaderByteStreamxAODCnv.h @@ -22,8 +22,6 @@ class StatusCode; template <typename> class CnvFactory; class StoreGateSvc; -// Externals -extern long ByteStream_StorageType; namespace LVL1BS { /** ByteStream converter for RodHeader. @@ -45,8 +43,8 @@ public: virtual StatusCode createRep(DataObject* pObj, IOpaqueAddress*& pAddr); // Storage type and class ID - virtual long repSvcType() const { return ByteStream_StorageType;} - static long storageType(){ return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } + static long storageType(); static const CLID& classID(); diff --git a/Trigger/TrigT1/TrigT1CaloSim/src/CPMSim.cxx b/Trigger/TrigT1/TrigT1CaloSim/src/CPMSim.cxx index a22fb5af832876683d465840f8e1934479790ff4..755f0a3b91ee58d74d1e229d5c57a84aaef7b4b9 100644 --- a/Trigger/TrigT1/TrigT1CaloSim/src/CPMSim.cxx +++ b/Trigger/TrigT1/TrigT1CaloSim/src/CPMSim.cxx @@ -29,8 +29,8 @@ #include "TrigT1CaloEvent/CPMTobRoI_ClassDEF.h" #include "TrigT1CaloEvent/CPMCMXData_ClassDEF.h" -#include "EventInfo/EventInfo.h" -#include "EventInfo/EventID.h" +#include "xAODEventInfo/EventInfo.h" + #include "TrigConfL1Data/CTPConfig.h" #include "TrigConfL1Data/Menu.h" #include "TrigConfL1Data/TriggerThreshold.h" @@ -107,9 +107,9 @@ StatusCode CPMSim::execute( ) ATH_MSG_DEBUG ( "starting CPMSim" ); // For RoI output SLink record - const EventInfo* evt; + const xAOD::EventInfo* evt; if (StatusCode::SUCCESS == evtStore()->retrieve(evt)){ - m_eventNumber = evt->event_ID()->event_number(); + m_eventNumber =evt->eventNumber(); }else{ ATH_MSG_ERROR(" Unable to retrieve EventInfo from StoreGate "); } diff --git a/Trigger/TrigT1/TrigT1CaloSim/src/RoIROD.cxx b/Trigger/TrigT1/TrigT1CaloSim/src/RoIROD.cxx index 38de92b8423f675a273648abd2dacfe890e47d5e..cf157f22e149d3611ac1b2876b3be3eeafcefbd1 100644 --- a/Trigger/TrigT1/TrigT1CaloSim/src/RoIROD.cxx +++ b/Trigger/TrigT1/TrigT1CaloSim/src/RoIROD.cxx @@ -15,10 +15,7 @@ // running in Athena #include "TrigT1CaloSim/RoIROD.h" - -#include "EventInfo/EventInfo.h" -#include "EventInfo/EventID.h" - +#include "xAODEventInfo/EventInfo.h" #include "TrigT1Interfaces/TrigT1Interfaces_ClassDEF.h" #include <algorithm> @@ -84,9 +81,9 @@ StatusCode LVL1::RoIROD::execute( ) { ATH_MSG_DEBUG("Executing" ); - const EventInfo* evt; + const xAOD::EventInfo* evt; if (StatusCode::SUCCESS == evtStore()->retrieve(evt)){ - m_eventNumber = evt->event_ID()->event_number(); + m_eventNumber = evt->eventNumber(); }else{ ATH_MSG_ERROR( " Unable to retrieve EventInfo from StoreGate "); } diff --git a/Trigger/TrigT1/TrigT1ResultByteStream/TrigT1ResultByteStream/CTPByteStreamCnv.h b/Trigger/TrigT1/TrigT1ResultByteStream/TrigT1ResultByteStream/CTPByteStreamCnv.h old mode 100755 new mode 100644 index 6036434596b041148d930e844d5ac19c39ab4531..64ebff9fe10e30dadb328245acfff11fd706d84c --- a/Trigger/TrigT1/TrigT1ResultByteStream/TrigT1ResultByteStream/CTPByteStreamCnv.h +++ b/Trigger/TrigT1/TrigT1ResultByteStream/TrigT1ResultByteStream/CTPByteStreamCnv.h @@ -21,9 +21,6 @@ // Forward declaration(s): class CTPSrcIdMap; -// External(s): -extern long ByteStream_StorageType; - /** * @short ByteStream converter for the CTP_RDO object * @@ -54,9 +51,9 @@ public: virtual StatusCode createRep( DataObject* pObj, IOpaqueAddress*& pAddr ); /// Function needed by the framework - virtual long repSvcType() const { return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } /// Function needed by the framework - static long storageType() { return ByteStream_StorageType; } + static long storageType(); /// Function needed by the framework static const CLID& classID(); diff --git a/Trigger/TrigT1/TrigT1ResultByteStream/TrigT1ResultByteStream/MuCTPIByteStreamCnv.h b/Trigger/TrigT1/TrigT1ResultByteStream/TrigT1ResultByteStream/MuCTPIByteStreamCnv.h old mode 100755 new mode 100644 index e5eae54bfd743ccb98ea2b597abf4976585d4a52..c0fce9b256991637ca3d51cdd276116c12a85823 --- a/Trigger/TrigT1/TrigT1ResultByteStream/TrigT1ResultByteStream/MuCTPIByteStreamCnv.h +++ b/Trigger/TrigT1/TrigT1ResultByteStream/TrigT1ResultByteStream/MuCTPIByteStreamCnv.h @@ -1,7 +1,7 @@ // Dear emacs, this is -*- c++ -*- /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #ifndef TRIGT1RESULTBYTESTREAM_MUCTPIBYTESTREAMCNV_H @@ -31,9 +31,6 @@ // Forward declaration(s): class MuCTPISrcIdMap; -// External(s): -extern long ByteStream_StorageType; - /** * @short ByteStream converter for the MuCTPI_RDO object * @@ -66,9 +63,9 @@ public: virtual StatusCode createRep( DataObject* pObj, IOpaqueAddress*& pAddr ); /// Function needed by the framework - virtual long repSvcType() const { return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } /// Function needed by the framework - static long storageType() { return ByteStream_StorageType; } + static long storageType(); /// Function needed by the framework static const CLID& classID(); diff --git a/Trigger/TrigT1/TrigT1ResultByteStream/TrigT1ResultByteStream/RecCTPByteStreamCnv.h b/Trigger/TrigT1/TrigT1ResultByteStream/TrigT1ResultByteStream/RecCTPByteStreamCnv.h old mode 100755 new mode 100644 index 0a5eed5e95a1c28ee60ffd649b39eda3603e5237..08482adb2a75b85ce85fb65816a393487117ebf2 --- a/Trigger/TrigT1/TrigT1ResultByteStream/TrigT1ResultByteStream/RecCTPByteStreamCnv.h +++ b/Trigger/TrigT1/TrigT1ResultByteStream/TrigT1ResultByteStream/RecCTPByteStreamCnv.h @@ -21,9 +21,6 @@ // Forward declaration(s): class CTPSrcIdMap; -// External(s): -extern long ByteStream_StorageType; - /** * @short ByteStream converter for the CTP_RIO object * @@ -52,9 +49,9 @@ public: virtual StatusCode createObj( IOpaqueAddress* pAddr, DataObject*& pObj ); /// Function needed by the framework - virtual long repSvcType() const { return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } /// Function needed by the framework - static long storageType() { return ByteStream_StorageType; } + static long storageType(); /// Function needed by the framework static const CLID& classID(); diff --git a/Trigger/TrigT1/TrigT1ResultByteStream/TrigT1ResultByteStream/RecMuCTPIByteStreamCnv.h b/Trigger/TrigT1/TrigT1ResultByteStream/TrigT1ResultByteStream/RecMuCTPIByteStreamCnv.h old mode 100755 new mode 100644 index 3e2dfbddf3c3c663cf0cf8f60b8f8076221a9875..ff17922350b39cc182455935c1b744baf2f3d520 --- a/Trigger/TrigT1/TrigT1ResultByteStream/TrigT1ResultByteStream/RecMuCTPIByteStreamCnv.h +++ b/Trigger/TrigT1/TrigT1ResultByteStream/TrigT1ResultByteStream/RecMuCTPIByteStreamCnv.h @@ -21,9 +21,6 @@ // Forward declaration(s): class MuCTPISrcIdMap; -// Externals -extern long ByteStream_StorageType; - /** * @short ByteStream converter for the MuCTPI_RIO object * @@ -54,9 +51,9 @@ public: virtual StatusCode createObj( IOpaqueAddress* pAddr, DataObject*& pObj ); /// Function needed by the framework - virtual long repSvcType() const { return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } /// Function needed by the framework - static long storageType() { return ByteStream_StorageType; } + static long storageType(); /// Function needed by the framework static const CLID& classID(); diff --git a/Trigger/TrigT1/TrigT1ResultByteStream/TrigT1ResultByteStream/RecRoIBResultByteStreamCnv.h b/Trigger/TrigT1/TrigT1ResultByteStream/TrigT1ResultByteStream/RecRoIBResultByteStreamCnv.h old mode 100755 new mode 100644 index 35ca48a44166999cf83d01abfa0cbbbb5643549a..2861b3fba3870271e8b57c97961f22f9f04e7c17 --- a/Trigger/TrigT1/TrigT1ResultByteStream/TrigT1ResultByteStream/RecRoIBResultByteStreamCnv.h +++ b/Trigger/TrigT1/TrigT1ResultByteStream/TrigT1ResultByteStream/RecRoIBResultByteStreamCnv.h @@ -14,9 +14,6 @@ // Local include(s): #include "TrigT1ResultByteStream/RecRoIBResultByteStreamTool.h" -// External(s): -extern long ByteStream_StorageType; - /** * @short ByteStream converter for the RecRoIBResult object * @@ -44,9 +41,9 @@ public: virtual StatusCode createObj( IOpaqueAddress* pAddr, DataObject*& pObj ); /// Function needed by the framework - virtual long repSvcType() const { return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } /// Function needed by the framework - static long storageType() { return ByteStream_StorageType; } + static long storageType(); /// Function needed by the framework static const CLID& classID(); diff --git a/Trigger/TrigT1/TrigT1ResultByteStream/TrigT1ResultByteStream/RecRoIBResultByteStreamCnv.icc b/Trigger/TrigT1/TrigT1ResultByteStream/TrigT1ResultByteStream/RecRoIBResultByteStreamCnv.icc index 4ae484f8d9dbcd5fcb6853de0af459726dae796c..6d500e02df8c542eb0dbc336f9dedef3cc13e854 100755 --- a/Trigger/TrigT1/TrigT1ResultByteStream/TrigT1ResultByteStream/RecRoIBResultByteStreamCnv.icc +++ b/Trigger/TrigT1/TrigT1ResultByteStream/TrigT1ResultByteStream/RecRoIBResultByteStreamCnv.icc @@ -1,7 +1,7 @@ // Dear emacs, this is -*- c++ -*- /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #ifndef TRIGT1RESULTBYTESTREAM_RECROIBRESULTBYTESTREAMCNV_ICC @@ -28,7 +28,7 @@ */ template< class ROBF > RecRoIBResultByteStreamCnv< ROBF >::RecRoIBResultByteStreamCnv( ISvcLocator* svcloc ) - : Converter( ByteStream_StorageType, classID(), svcloc ), + : Converter( storageType(), classID(), svcloc ), m_tool( "RecRoIBResultByteStreamTool" ) { } @@ -44,6 +44,10 @@ const CLID& RecRoIBResultByteStreamCnv< ROBF >::classID() { } +template< class ROBF > +long RecRoIBResultByteStreamCnv< ROBF >::storageType() { + return ByteStreamAddress::storageType(); +} /** * Init method gets all necessary services etc. diff --git a/Trigger/TrigT1/TrigT1ResultByteStream/TrigT1ResultByteStream/RoIBResultByteStreamCnv.h b/Trigger/TrigT1/TrigT1ResultByteStream/TrigT1ResultByteStream/RoIBResultByteStreamCnv.h old mode 100755 new mode 100644 index 1e6f4be66fc4c6b4b000d0c65cfa6cf28d3d4c2f..c0bded8c16b0e8686035d2f94459dfb9960c7f56 --- a/Trigger/TrigT1/TrigT1ResultByteStream/TrigT1ResultByteStream/RoIBResultByteStreamCnv.h +++ b/Trigger/TrigT1/TrigT1ResultByteStream/TrigT1ResultByteStream/RoIBResultByteStreamCnv.h @@ -17,9 +17,6 @@ // Local include(s): #include "TrigT1ResultByteStream/RoIBResultByteStreamTool.h" -// External(s): -extern long ByteStream_StorageType; - /** * @short ByteStream converter for the RoIBResult object * @@ -50,9 +47,9 @@ public: virtual StatusCode createRep( DataObject* pObj, IOpaqueAddress*& pAddr ); /// Function needed by the framework - virtual long repSvcType() const { return ByteStream_StorageType; } + virtual long repSvcType() const { return i_repSvcType(); } /// Function needed by the framework - static long storageType() { return ByteStream_StorageType; } + static long storageType(); /// Function needed by the framework static const CLID& classID(); diff --git a/Trigger/TrigT1/TrigT1ResultByteStream/TrigT1ResultByteStream/RoIBResultByteStreamCnv.icc b/Trigger/TrigT1/TrigT1ResultByteStream/TrigT1ResultByteStream/RoIBResultByteStreamCnv.icc index 621cec82975893bab2431d62023b8a4500b54e5e..e5bdc37697cfb7372cfa9e54d74f9ef0556c22a3 100755 --- a/Trigger/TrigT1/TrigT1ResultByteStream/TrigT1ResultByteStream/RoIBResultByteStreamCnv.icc +++ b/Trigger/TrigT1/TrigT1ResultByteStream/TrigT1ResultByteStream/RoIBResultByteStreamCnv.icc @@ -1,7 +1,7 @@ // Dear emacs, this is -*- c++ -*- /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #ifndef TRIGT1RESULTBYTESTREAM_ROIBRESULTBYTESTREAMCNV_ICC @@ -29,7 +29,7 @@ */ template< class ROBF > RoIBResultByteStreamCnv< ROBF >::RoIBResultByteStreamCnv( ISvcLocator* svcloc ) - : Converter( ByteStream_StorageType, classID(), svcloc ), + : Converter( storageType(), classID(), svcloc ), m_tool( "RoIBResultByteStreamTool" ), m_ByteStreamCnvSvc( "ByteStreamCnvSvc", "RoIBResultByteStreamCnv" ) { @@ -44,6 +44,10 @@ const CLID& RoIBResultByteStreamCnv< ROBF >::classID(){ return ClassID_traits< ROIB::RoIBResult >::ID(); } +template< class ROBF > +long RoIBResultByteStreamCnv< ROBF >::storageType() { + return ByteStreamAddress::storageType(); +} /** * Init method gets all necessary services etc. diff --git a/Trigger/TrigT1/TrigT1ResultByteStream/src/CTPByteStreamCnv.cxx b/Trigger/TrigT1/TrigT1ResultByteStream/src/CTPByteStreamCnv.cxx index 23b7841c34e4ed7a251487234873b131693d4208..2847b9b92b9b7d2ce791541891b1eb6aee120a92 100755 --- a/Trigger/TrigT1/TrigT1ResultByteStream/src/CTPByteStreamCnv.cxx +++ b/Trigger/TrigT1/TrigT1ResultByteStream/src/CTPByteStreamCnv.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ @@ -23,7 +23,7 @@ * base class in the correct way. */ CTPByteStreamCnv::CTPByteStreamCnv( ISvcLocator* svcloc ) - : Converter( ByteStream_StorageType, classID(), svcloc ), + : Converter( storageType(), classID(), svcloc ), m_tool( "CTPByteStreamTool" ), m_srcIdMap( 0 ), m_robDataProvider( "ROBDataProviderSvc", "CTPByteStreamCnv" ), m_ByteStreamEventAccess( "ByteStreamCnvSvc", "CTPByteStreamCnv" ) { @@ -53,6 +53,10 @@ const CLID& CTPByteStreamCnv::classID() { } +long CTPByteStreamCnv::storageType() { + return ByteStreamAddress::storageType(); +} + /** * Init method gets all necessary services etc. */ diff --git a/Trigger/TrigT1/TrigT1ResultByteStream/src/MuCTPIByteStreamCnv.cxx b/Trigger/TrigT1/TrigT1ResultByteStream/src/MuCTPIByteStreamCnv.cxx index 6610c55ed47b906c22483374a7f9b1089b73fd17..d4926702ec997ac10ab818571781f1d46698f5b5 100755 --- a/Trigger/TrigT1/TrigT1ResultByteStream/src/MuCTPIByteStreamCnv.cxx +++ b/Trigger/TrigT1/TrigT1ResultByteStream/src/MuCTPIByteStreamCnv.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ @@ -31,7 +31,7 @@ * base class in the correct way. */ MuCTPIByteStreamCnv::MuCTPIByteStreamCnv( ISvcLocator* svcloc ) - : Converter( ByteStream_StorageType, classID(), svcloc ), + : Converter( storageType(), classID(), svcloc ), m_tool( "MuCTPIByteStreamTool" ), m_srcIdMap( 0 ), #ifdef CTP_MUCTPI_HAVE_SAME_ROS m_ctp_tool( "CTPByteStreamTool" ), @@ -66,6 +66,10 @@ const CLID& MuCTPIByteStreamCnv::classID() { } +long MuCTPIByteStreamCnv::storageType() { + return ByteStreamAddress::storageType(); +} + /** * Init method gets all necessary services etc. */ diff --git a/Trigger/TrigT1/TrigT1ResultByteStream/src/RecCTPByteStreamCnv.cxx b/Trigger/TrigT1/TrigT1ResultByteStream/src/RecCTPByteStreamCnv.cxx index d270aa8e2900fe701b18bcf3ef2bd0d9faf22830..3830dc9a04e138f6642c7976e83c6514da54aa8a 100755 --- a/Trigger/TrigT1/TrigT1ResultByteStream/src/RecCTPByteStreamCnv.cxx +++ b/Trigger/TrigT1/TrigT1ResultByteStream/src/RecCTPByteStreamCnv.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ @@ -23,7 +23,7 @@ * base class in the correct way. */ RecCTPByteStreamCnv::RecCTPByteStreamCnv( ISvcLocator* svcloc ) - : Converter( ByteStream_StorageType, classID(), svcloc ), + : Converter( storageType(), classID(), svcloc ), m_tool( "RecCTPByteStreamTool" ), m_srcIdMap( 0 ), m_robDataProvider( "ROBDataProviderSvc", "RecCTPByteStreamCnv" ) { @@ -52,6 +52,10 @@ const CLID& RecCTPByteStreamCnv::classID() { } +long RecCTPByteStreamCnv::storageType() { + return ByteStreamAddress::storageType(); +} + /** * Init method gets all necessary services etc. */ diff --git a/Trigger/TrigT1/TrigT1ResultByteStream/src/RecMuCTPIByteStreamCnv.cxx b/Trigger/TrigT1/TrigT1ResultByteStream/src/RecMuCTPIByteStreamCnv.cxx index e495669ae0ec93ef72af8fb89c329b60a5d58018..15d4cb7496eb136bb552288e58248542d5a2c378 100755 --- a/Trigger/TrigT1/TrigT1ResultByteStream/src/RecMuCTPIByteStreamCnv.cxx +++ b/Trigger/TrigT1/TrigT1ResultByteStream/src/RecMuCTPIByteStreamCnv.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ @@ -22,7 +22,7 @@ * base class in the correct way. */ RecMuCTPIByteStreamCnv::RecMuCTPIByteStreamCnv( ISvcLocator* svcloc ) - : Converter( ByteStream_StorageType, classID(), svcloc ), + : Converter( storageType(), classID(), svcloc ), m_tool( "RecMuCTPIByteStreamTool" ), m_srcIdMap( 0 ), m_robDataProvider( "ROBDataProviderSvc", "RecMuCTPIByteStreamCnv" ) { @@ -51,6 +51,10 @@ const CLID& RecMuCTPIByteStreamCnv::classID() { } +long RecMuCTPIByteStreamCnv::storageType() { + return ByteStreamAddress::storageType(); +} + /** * Init method gets all necessary services etc. */ diff --git a/Trigger/TrigValidation/TrigAnalysisTest/test/test_physics_pp_v7_rdotobstoesd_build.sh b/Trigger/TrigValidation/TrigAnalysisTest/test/test_physics_pp_v7_rdotobstoesd_build.sh index baa5b204770015b79bfda6df20e51eab2d1f004f..967ff8d8ee32763f10f654e865bf19181304662e 100755 --- a/Trigger/TrigValidation/TrigAnalysisTest/test/test_physics_pp_v7_rdotobstoesd_build.sh +++ b/Trigger/TrigValidation/TrigAnalysisTest/test/test_physics_pp_v7_rdotobstoesd_build.sh @@ -28,7 +28,7 @@ export EVENTS="3" export JOBOPTION="TrigAnalysisTest/testAthenaTrigRDOtoBS.py" source exec_athena_art_trigger_validation.sh -athena.py -c "jp.AthenaCommonFlags.BSRDOInput=['raw.data']" testAthenaTrigBStoESD.py | tee ${JOB_LOG%%.*}2.${JOB_LOG#*.} +athena.py -c "jp.AthenaCommonFlags.BSRDOInput=['raw.data']" TrigAnalysisTest/testAthenaTrigBStoESD.py | tee ${JOB_LOG%%.*}2.${JOB_LOG#*.} echo "art-result: ${PIPESTATUS[0]} ${JOB_LOG%%.*}2" source exec_art_triggertest_post.sh diff --git a/Trigger/TrigValidation/TrigAnalysisTest/test/test_run1_bstoesdaod_build.sh b/Trigger/TrigValidation/TrigAnalysisTest/test/test_run1_bstoesdaod_build.sh index c1e0221acd4559951952964377a93cabd873281d..4a3fa15424b2907ec1621a19f0358509de3b2026 100755 --- a/Trigger/TrigValidation/TrigAnalysisTest/test/test_run1_bstoesdaod_build.sh +++ b/Trigger/TrigValidation/TrigAnalysisTest/test/test_run1_bstoesdaod_build.sh @@ -1,7 +1,7 @@ #!/bin/bash # art-description: Trigger test on Run 1 Bytestream data -# art-type: grid +# art-type: build # art-include: 21.0/Athena # art-include: 21.3/Athena # art-include: 21.0-TrigMC/Athena @@ -50,5 +50,4 @@ else echo "art-result: xAODContainers 1" fi -source exec_athena_art_trigger_validation.sh source exec_art_triggertest_post.sh diff --git a/Trigger/TrigValidation/TrigUpgradeTest/python/CaloMenuDefs.py b/Trigger/TrigValidation/TrigUpgradeTest/python/CaloMenuDefs.py index a53c608660cb28e5f3c923e1ceb6573042cfa141..fc01a394e83bd1637afdd3acd5054dea448c5f28 100644 --- a/Trigger/TrigValidation/TrigUpgradeTest/python/CaloMenuDefs.py +++ b/Trigger/TrigValidation/TrigUpgradeTest/python/CaloMenuDefs.py @@ -38,8 +38,8 @@ def fastCaloMenuSequence(name): CaloMenuDefs.L2CaloClusters = sequenceOut - from TrigEgammaHypo.TrigL2CaloHypoTool import TrigL2CaloHypoToolFromName + from TrigEgammaHypo.TrigL2CaloHypoTool import TrigL2CaloHypoToolFromDict return MenuSequence( Sequence = sequence, Maker = fastCaloViewsMaker, Hypo = theFastCaloHypo, - HypoToolGen = TrigL2CaloHypoToolFromName ) + HypoToolGen = TrigL2CaloHypoToolFromDict ) diff --git a/Trigger/TrigValidation/TrigUpgradeTest/python/ElectronMenuConfig.py b/Trigger/TrigValidation/TrigUpgradeTest/python/ElectronMenuConfig.py index 0158dfcdb4958240eb4dd13ca46e926cc47f8a97..417d1fbf9f05b0bf62ad307edd62e567665649ef 100644 --- a/Trigger/TrigValidation/TrigUpgradeTest/python/ElectronMenuConfig.py +++ b/Trigger/TrigValidation/TrigUpgradeTest/python/ElectronMenuConfig.py @@ -182,7 +182,7 @@ def generateElectronsCfg( flags ): acc = ComponentAccumulator() from TriggerMenuMT.HLTMenuConfig.Menu.MenuComponents import MenuSequence, ChainStep, Chain, RecoFragmentsPool - from TrigEgammaHypo.TrigL2CaloHypoTool import TrigL2CaloHypoToolFromName + from TrigEgammaHypo.TrigL2CaloHypoTool import TrigL2CaloHypoToolFromDict from TrigEgammaHypo.TrigEgammaHypoConf import TrigL2CaloHypoAlgMT l2CaloHypo = TrigL2CaloHypoAlgMT( 'L2ElectronCaloHypo' ) l2CaloHypo.CaloClusters = 'L2CaloEMClusters' @@ -193,7 +193,7 @@ def generateElectronsCfg( flags ): fastCaloSequence = MenuSequence( Sequence = l2CaloReco.sequence(), Maker = l2CaloReco.inputMaker(), Hypo = l2CaloHypo, - HypoToolGen = TrigL2CaloHypoToolFromName ) + HypoToolGen = TrigL2CaloHypoToolFromDict ) fastCaloStep = ChainStep("Electron_step1", [fastCaloSequence]) diff --git a/Trigger/TrigValidation/TrigUpgradeTest/python/HLTSignatureHypoTools.py b/Trigger/TrigValidation/TrigUpgradeTest/python/HLTSignatureHypoTools.py index b6163673e65def6ea31280c819a87f737dc26c45..2ae01830e96dca9d0b0a16bb386c02379fb66203 100644 --- a/Trigger/TrigValidation/TrigUpgradeTest/python/HLTSignatureHypoTools.py +++ b/Trigger/TrigValidation/TrigUpgradeTest/python/HLTSignatureHypoTools.py @@ -10,22 +10,26 @@ def TestHypoTool(name, prop, threshold_value): h = HLTTest__TestHypoTool(name, OutputLevel=DEBUG, Threshold=value, Property=prop, LinkName=UseThisLinkName) return h -def MuTestHypoTool(name, conf): +def MuTestHypoTool(chainDict): #threshold = conf.replace("HLT_mu","") + conf = name = chainDict['chainName'] threshold = getThreshold(conf, 'mu') return TestHypoTool(name,prop="pt", threshold_value=threshold) -def ElTestHypoTool(name,conf): +def ElTestHypoTool(chainDict): #threshold = conf.replace("HLT_e","") + conf = name = chainDict['chainName'] threshold = getThreshold(conf, 'e') return TestHypoTool(name,prop="et", threshold_value=threshold) -def GammTestHypoTool(name,conf): +def GammTestHypoTool(chainDict): + conf = name = chainDict['chainName'] threshold = getThreshold(conf, 'g') return TestHypoTool(name,prop="et", threshold_value=threshold) -def MuTest2HypoTool(name, conf): +def MuTest2HypoTool(chainDict): + conf = name = chainDict['chainName'] threshold = getThreshold(conf, 'mu') return TestHypoTool(name,prop="pt2", threshold_value=threshold) diff --git a/Trigger/TrigValidation/TrigUpgradeTest/python/PhotonMenuConfig.py b/Trigger/TrigValidation/TrigUpgradeTest/python/PhotonMenuConfig.py index 2007bddf05faf7e99d3b3209fa19ad7002b06e3b..28fab911b736a334626462bbf98fd4ab7eca3fd0 100644 --- a/Trigger/TrigValidation/TrigUpgradeTest/python/PhotonMenuConfig.py +++ b/Trigger/TrigValidation/TrigUpgradeTest/python/PhotonMenuConfig.py @@ -53,7 +53,7 @@ def generatePhotonsCfg( flags ): acc = ComponentAccumulator() from TriggerMenuMT.HLTMenuConfig.Menu.MenuComponents import MenuSequence, ChainStep, Chain, RecoFragmentsPool - from TrigEgammaHypo.TrigL2CaloHypoTool import TrigL2CaloHypoToolFromName + from TrigEgammaHypo.TrigL2CaloHypoTool import TrigL2CaloHypoToolFromDict from TrigEgammaHypo.TrigEgammaHypoConf import TrigL2CaloHypoAlgMT l2CaloHypo = TrigL2CaloHypoAlgMT("L2PhotonCaloHypo") l2CaloHypo.CaloClusters = 'L2CaloEMClusters' @@ -68,7 +68,7 @@ def generatePhotonsCfg( flags ): fastCaloSequence = MenuSequence( Sequence = l2CaloReco.sequence(), Maker = l2CaloReco.inputMaker(), Hypo = l2CaloHypo, - HypoToolGen = TrigL2CaloHypoToolFromName ) + HypoToolGen = TrigL2CaloHypoToolFromDict ) fastCaloStep = ChainStep( "Photon_step1", [fastCaloSequence] ) @@ -83,12 +83,12 @@ def generatePhotonsCfg( flags ): l2PhotonHypo.RunInView=True l2PhotonHypo.OutputLevel = VERBOSE - from TrigEgammaHypo.TrigL2PhotonHypoTool import TrigL2PhotonHypoToolFromName + from TrigEgammaHypo.TrigL2PhotonHypoTool import TrigL2PhotonHypoToolFromDict l2PhotonSequence = MenuSequence( Sequence = l2PhotonReco.sequence(), Maker = l2PhotonReco.inputMaker(), Hypo = l2PhotonHypo, - HypoToolGen = TrigL2PhotonHypoToolFromName ) + HypoToolGen = TrigL2PhotonHypoToolFromDict ) l2PhotonStep = ChainStep( "Photon_step2", [ l2PhotonSequence] ) diff --git a/Trigger/TrigValidation/TrigUpgradeTest/python/bjetMenuDefs.py b/Trigger/TrigValidation/TrigUpgradeTest/python/bjetMenuDefs.py index 0d5284f70b7e4078d4d6b3d7caf2fb4697842ae2..a7d50ce3b0dbaae144e1ce80a58439bc4c115575 100644 --- a/Trigger/TrigValidation/TrigUpgradeTest/python/bjetMenuDefs.py +++ b/Trigger/TrigValidation/TrigUpgradeTest/python/bjetMenuDefs.py @@ -105,7 +105,7 @@ def bJetStep1Sequence(): # hypo from TrigBjetHypo.TrigBjetHypoConf import TrigBjetEtHypoAlgMT - from TrigBjetHypo.TrigBjetEtHypoTool import TrigBjetEtHypoToolFromName_j + from TrigBjetHypo.TrigBjetEtHypoTool import TrigBjetEtHypoToolFromDict_j hypo = TrigBjetEtHypoAlgMT("TrigBjetEtHypoAlgMT_step1") hypo.OutputLevel = DEBUG hypo.Jets = jetSplitter.OutputJets @@ -119,7 +119,7 @@ def bJetStep1Sequence(): return MenuSequence( Sequence = BjetAthSequence, Maker = InputMakerAlg, Hypo = hypo, - HypoToolGen = TrigBjetEtHypoToolFromName_j ) + HypoToolGen = TrigBjetEtHypoToolFromDict_j ) def bJetStep1SequenceALLTE(): # menu components @@ -178,7 +178,7 @@ def bJetStep1SequenceALLTE(): # hypo from TrigBjetHypo.TrigBjetHypoConf import TrigBjetEtHypoAlgMT - from TrigBjetHypo.TrigBjetEtHypoTool import TrigBjetEtHypoToolFromName_j + from TrigBjetHypo.TrigBjetEtHypoTool import TrigBjetEtHypoToolFromDict_j hypo = TrigBjetEtHypoAlgMT("TrigBjetEtHypoAlgMT_step1_ALLTE") hypo.OutputLevel = DEBUG hypo.Jets = jetSplitter.OutputJets @@ -192,7 +192,7 @@ def bJetStep1SequenceALLTE(): return MenuSequence( Sequence = BjetAthSequence, Maker = InputMakerAlg, Hypo = hypo, - HypoToolGen = TrigBjetEtHypoToolFromName_j ) + HypoToolGen = TrigBjetEtHypoToolFromDict_j ) @@ -235,7 +235,7 @@ def bJetStep2Sequence(): # hypo from TrigBjetHypo.TrigBjetHypoConf import TrigBjetEtHypoAlgMT - from TrigBjetHypo.TrigBjetEtHypoTool import TrigBjetEtHypoToolFromName_gsc + from TrigBjetHypo.TrigBjetEtHypoTool import TrigBjetEtHypoToolFromDict_gsc hypo = TrigBjetEtHypoAlgMT("TrigBjetEtHypoAlg_step2") hypo.OutputLevel = DEBUG hypo.RoIs = "step1RoI" @@ -250,7 +250,7 @@ def bJetStep2Sequence(): return MenuSequence( Sequence = BjetAthSequence, Maker = InputMakerAlg, Hypo = hypo, - HypoToolGen = TrigBjetEtHypoToolFromName_gsc ) + HypoToolGen = TrigBjetEtHypoToolFromDict_gsc ) def bJetStep2SequenceALLTE(): @@ -274,7 +274,7 @@ def bJetStep2SequenceALLTE(): # hypo from TrigBjetHypo.TrigBjetHypoConf import TrigBjetEtHypoAlgMT - from TrigBjetHypo.TrigBjetEtHypoTool import TrigBjetEtHypoToolFromName_gsc + from TrigBjetHypo.TrigBjetEtHypoTool import TrigBjetEtHypoToolFromDict_gsc hypo = TrigBjetEtHypoAlgMT("TrigBjetEtHypoAlg_step2ALLTE") hypo.OutputLevel = DEBUG hypo.Jets = theGSC.JetOutputKey @@ -288,7 +288,7 @@ def bJetStep2SequenceALLTE(): return MenuSequence( Sequence = BjetAthSequence, Maker = InputMakerAlg, Hypo = hypo, - HypoToolGen = TrigBjetEtHypoToolFromName_gsc ) + HypoToolGen = TrigBjetEtHypoToolFromDict_gsc ) # ==================================================================================================== # step 3: secondary vertex and b-tagging diff --git a/Trigger/TrigValidation/TrigUpgradeTest/python/electronMenuDefs.py b/Trigger/TrigValidation/TrigUpgradeTest/python/electronMenuDefs.py index 8c1ddd83339740063c3fb413fb6c585d1a845d90..e4693823ef4e17534013654dfd1daaf552e0e0f0 100644 --- a/Trigger/TrigValidation/TrigUpgradeTest/python/electronMenuDefs.py +++ b/Trigger/TrigValidation/TrigUpgradeTest/python/electronMenuDefs.py @@ -100,10 +100,10 @@ def electronMenuSequence(): theElectronHypo.RunInView=True theElectronHypo.OutputLevel = VERBOSE - from TrigEgammaHypo.TrigL2ElectronHypoTool import TrigL2ElectronHypoToolFromName + from TrigEgammaHypo.TrigL2ElectronHypoTool import TrigL2ElectronHypoToolFromDict return MenuSequence( Maker = l2ElectronViewsMaker, Sequence = electronAthSequence, Hypo = theElectronHypo, - HypoToolGen = TrigL2ElectronHypoToolFromName ) + HypoToolGen = TrigL2ElectronHypoToolFromDict ) diff --git a/Trigger/TrigValidation/TrigUpgradeTest/python/jetMenuDefs.py b/Trigger/TrigValidation/TrigUpgradeTest/python/jetMenuDefs.py index 5082582d2db0ad342a688eba32793ef3d7c6db09..eddd243889e45ad5dc5ba835a9db76524dd2e12c 100644 --- a/Trigger/TrigValidation/TrigUpgradeTest/python/jetMenuDefs.py +++ b/Trigger/TrigValidation/TrigUpgradeTest/python/jetMenuDefs.py @@ -16,7 +16,7 @@ def jetMenuSequence(): #hypo from TrigHLTJetHypo.TrigHLTJetHypoConf import TrigJetHypoAlgMT - from TrigHLTJetHypo.TrigJetHypoToolConfig import trigJetHypoToolFromName + from TrigHLTJetHypo.TrigJetHypoToolConfig import trigJetHypoToolFromDict hypo = TrigJetHypoAlgMT("TrigJetHypoAlgMT") hypo.OutputLevel = DEBUG hypo.Jets = sequenceOut @@ -25,4 +25,4 @@ def jetMenuSequence(): return MenuSequence( Sequence = JetAthSequence, Maker = InputMakerAlg, Hypo = hypo, - HypoToolGen = trigJetHypoToolFromName ) + HypoToolGen = trigJetHypoToolFromDict ) diff --git a/Trigger/TrigValidation/TrigUpgradeTest/python/metMenuDefs.py b/Trigger/TrigValidation/TrigUpgradeTest/python/metMenuDefs.py index 8d43b41cb4b8f68bbe00b7a4a0a3fb8cbcffff05..0c57a73be3fae3fc354a1420efb7ff79ab7175e6 100644 --- a/Trigger/TrigValidation/TrigUpgradeTest/python/metMenuDefs.py +++ b/Trigger/TrigValidation/TrigUpgradeTest/python/metMenuDefs.py @@ -13,7 +13,7 @@ def metCellMenuSequence(): (metCellSequence, InputMakerAlg, sequenceOut) = RecoFragmentsPool.retrieve(metCellAthSequence,ConfigFlags) #hypo - from TrigMissingETHypo.TrigMissingETHypoConfigMT import MissingETHypoAlgMT, TrigMETCellHypoToolFromName, MissingETHypoToolMT + from TrigMissingETHypo.TrigMissingETHypoConfigMT import MissingETHypoAlgMT, TrigMETCellHypoToolFromDict, MissingETHypoToolMT metHypoAlg = MissingETHypoAlgMT("METHypoAlg") metHypoAlg.METContainerKey=sequenceOut @@ -22,5 +22,5 @@ def metCellMenuSequence(): return MenuSequence( Sequence = metCellSequence, Maker = InputMakerAlg, Hypo = metHypoAlg, - HypoToolGen = TrigMETCellHypoToolFromName ) + HypoToolGen = TrigMETCellHypoToolFromDict ) diff --git a/Trigger/TrigValidation/TrigUpgradeTest/python/muMenuDefs.py b/Trigger/TrigValidation/TrigUpgradeTest/python/muMenuDefs.py index addc98ddd19e8462a2eeb1f311a44fa9b0d656f9..fc6a247959614bba6c44741a1b1c1634ed2e5763 100644 --- a/Trigger/TrigValidation/TrigUpgradeTest/python/muMenuDefs.py +++ b/Trigger/TrigValidation/TrigUpgradeTest/python/muMenuDefs.py @@ -84,12 +84,12 @@ def muFastStep(): l2muFastSequence = seqAND("l2muFastSequence", [ l2MuViewsMaker, muFastRecoSequence ]) - from TrigMuonHypoMT.TrigMuonHypoMTConfig import TrigMufastHypoToolFromName + from TrigMuonHypoMT.TrigMuonHypoMTConfig import TrigMufastHypoToolFromDict return MenuSequence( Sequence = l2muFastSequence, Maker = l2MuViewsMaker, Hypo = trigMufastHypo, - HypoToolGen = TrigMufastHypoToolFromName ) + HypoToolGen = TrigMufastHypoToolFromDict ) ### ************* Step2 ************* ### @@ -118,12 +118,12 @@ def muCombStep(): l2muCombSequence = seqAND("l2muCombSequence", eventAlgs + [l2muCombViewsMaker, muCombRecoSequence] ) - from TrigMuonHypoMT.TrigMuonHypoMTConfig import TrigmuCombHypoToolFromName + from TrigMuonHypoMT.TrigMuonHypoMTConfig import TrigmuCombHypoToolFromDict return MenuSequence( Sequence = l2muCombSequence, Maker = l2muCombViewsMaker, Hypo = trigmuCombHypo, - HypoToolGen = TrigmuCombHypoToolFromName ) + HypoToolGen = TrigmuCombHypoToolFromDict ) ### ************* Step3 ************* ### @@ -151,12 +151,12 @@ def muEFMSStep(): muonEFMSonlySequence = seqAND( "muonEFMSonlySequence", [efmsViewsMaker, muEFMSRecoSequence] ) - from TrigMuonHypoMT.TrigMuonHypoMTConfig import TrigMuonEFMSonlyHypoToolFromName + from TrigMuonHypoMT.TrigMuonHypoMTConfig import TrigMuonEFMSonlyHypoToolFromDict return MenuSequence( Sequence = muonEFMSonlySequence, Maker = efmsViewsMaker, Hypo = trigMuonEFMSHypo, - HypoToolGen = TrigMuonEFMSonlyHypoToolFromName ) + HypoToolGen = TrigMuonEFMSonlyHypoToolFromDict ) ### EFSA step ### def muEFSAStep(): @@ -181,12 +181,12 @@ def muEFSAStep(): muonEFSAonlySequence = seqAND( "muonEFSAonlySequence", [efsaViewsMaker, muEFSARecoSequence ] ) - from TrigMuonHypoMT.TrigMuonHypoMTConfig import TrigMuonEFMSonlyHypoToolFromName + from TrigMuonHypoMT.TrigMuonHypoMTConfig import TrigMuonEFMSonlyHypoToolFromDict return MenuSequence( Sequence = muonEFSAonlySequence, Maker = efsaViewsMaker, Hypo = trigMuonEFSAHypo, - HypoToolGen = TrigMuonEFMSonlyHypoToolFromName ) + HypoToolGen = TrigMuonEFMSonlyHypoToolFromDict ) def muEFCBStep(): @@ -215,12 +215,12 @@ def muEFCBStep(): muonEFCBSequence = seqAND( "muonEFCBSequence", [efcbViewsMaker, efcbViewNode] ) - from TrigMuonHypoMT.TrigMuonHypoMTConfig import TrigMuonEFCombinerHypoToolFromName + from TrigMuonHypoMT.TrigMuonHypoMTConfig import TrigMuonEFCombinerHypoToolFromDict return MenuSequence( Sequence = muonEFCBSequence, Maker = efcbViewsMaker, Hypo = trigMuonEFCBHypo, - HypoToolGen = TrigMuonEFCombinerHypoToolFromName ) + HypoToolGen = TrigMuonEFCombinerHypoToolFromDict ) ### EF SA full scan ### def muEFSAFSStep(): @@ -245,12 +245,12 @@ def muEFSAFSStep(): muonEFSAFSSequence = seqAND( "muonEFSAFSSequence", [efsafsInputMaker, muEFSAFSRecoSequence ] ) - from TrigMuonHypoMT.TrigMuonHypoMTConfig import TrigMuonEFMSonlyHypoToolFromName + from TrigMuonHypoMT.TrigMuonHypoMTConfig import TrigMuonEFMSonlyHypoToolFromDict return MenuSequence( Sequence = muonEFSAFSSequence, Maker = efsafsInputMaker, Hypo = trigMuonEFSAFSHypo, - HypoToolGen = TrigMuonEFMSonlyHypoToolFromName ) + HypoToolGen = TrigMuonEFMSonlyHypoToolFromDict ) ### l2Muiso step ### @@ -277,12 +277,12 @@ def muIsoStep(): ### Define a Sequence to run for muIso ### l2muIsoSequence = seqAND("l2muIsoSequence", [ l2muIsoViewsMaker, l2muisoRecoSequence ] ) - from TrigMuonHypoMT.TrigMuonHypoMTConfig import TrigMuisoHypoToolFromName + from TrigMuonHypoMT.TrigMuonHypoMTConfig import TrigMuisoHypoToolFromDict return MenuSequence( Sequence = l2muIsoSequence, Maker = l2muIsoViewsMaker, Hypo = trigmuIsoHypo, - HypoToolGen = TrigMuisoHypoToolFromName ) + HypoToolGen = TrigMuisoHypoToolFromDict ) def TMEF_TrkMaterialProviderTool(name='TMEF_TrkMaterialProviderTool',**kwargs): diff --git a/Trigger/TrigValidation/TrigUpgradeTest/python/pebMenuDefs.py b/Trigger/TrigValidation/TrigUpgradeTest/python/pebMenuDefs.py index 8f2c3935ffdd6b82d831647a34f8884a5e5cac7c..875a6ac94ce56bc398462f46fbdddde9b3172281 100644 --- a/Trigger/TrigValidation/TrigUpgradeTest/python/pebMenuDefs.py +++ b/Trigger/TrigValidation/TrigUpgradeTest/python/pebMenuDefs.py @@ -29,7 +29,8 @@ def addHLTResultToROBList(robList, moduleId=0): hltResultSID = SourceIdentifier(SubDetector.TDAQ_HLT,moduleId) robList.extend([hltResultSID.code()]) -def pebInfoWriterToolFromName(name, conf): +def pebInfoWriterToolFromDict(chainDict): + name = chainDict['chainName'] # pebtestone is a physics-type PEB example, i.e. saves a few detector ROBs and the full HLT result if "pebtestone" in name: tool = StaticPEBInfoWriterTool(name) @@ -50,7 +51,7 @@ def pebInfoWriterToolFromName(name, conf): log.error("Unknown name %s passed to pebInfoWriterToolFromName" % name) sys.exit("Configuration error") -def pebInfoWriterSequence(name,toolGenerator=pebInfoWriterToolFromName): +def pebInfoWriterSequence(name,toolGenerator=pebInfoWriterToolFromDict): """Creates a MenuSequence for PEBInfo writer. The algorithm and tools are given unique names derived from the name parameter. This is required to avoid execution stall from having the same algorithm instance configured in different steps awaiting different inputs.""" @@ -73,7 +74,8 @@ def dataScoutingResultIDFromName(name): log.error("Unknown name %s, cannot assign result ID" % name) sys.exit("Configuration error") -def dataScoutingInfoWriter(name, conf): +def dataScoutingInfoWriter(chainDict): + name = chainDict['chainName'] '''Creates a StaticPEBInfoWriterTool, which adds the data scouting HLT result to the PEBInfo''' tool = StaticPEBInfoWriterTool(name) moduleId = dataScoutingResultIDFromName(name) @@ -83,4 +85,4 @@ def dataScoutingInfoWriter(name, conf): return tool def dataScoutingSequence(name): - return pebInfoWriterSequence(name,dataScoutingInfoWriter) \ No newline at end of file + return pebInfoWriterSequence(name,dataScoutingInfoWriter) diff --git a/Trigger/TrigValidation/TrigUpgradeTest/python/photonMenuDefs.py b/Trigger/TrigValidation/TrigUpgradeTest/python/photonMenuDefs.py index 2c2629dc1446c29e04231004f16a7fc3d00fdd82..ab324f6ae0223c918be8950628644ceb9621f4b9 100644 --- a/Trigger/TrigValidation/TrigUpgradeTest/python/photonMenuDefs.py +++ b/Trigger/TrigValidation/TrigUpgradeTest/python/photonMenuDefs.py @@ -55,11 +55,11 @@ def photonMenuSequence(): #electronDecisionsDumper = DumpDecisions("electronDecisionsDumper", OutputLevel=DEBUG, Decisions = theElectronHypo.Output ) photonAthSequence = seqAND("photonAthSequence", [l2PhotonViewsMaker, photonInViewAlgs] ) - from TrigEgammaHypo.TrigL2PhotonHypoTool import TrigL2PhotonHypoToolFromName + from TrigEgammaHypo.TrigL2PhotonHypoTool import TrigL2PhotonHypoToolFromDict return MenuSequence( Maker=l2PhotonViewsMaker, Sequence=photonAthSequence, Hypo=thePhotonHypo, - HypoToolGen=TrigL2PhotonHypoToolFromName) + HypoToolGen=TrigL2PhotonHypoToolFromDict) diff --git a/Trigger/TrigValidation/TrigUpgradeTest/python/tauMenuDefs.py b/Trigger/TrigValidation/TrigUpgradeTest/python/tauMenuDefs.py index 9e337c0b4e9a3bb2a3087e50439a6d378806da2d..b87be76df1a46b5316ccac566e079dd128672da4 100644 --- a/Trigger/TrigValidation/TrigUpgradeTest/python/tauMenuDefs.py +++ b/Trigger/TrigValidation/TrigUpgradeTest/python/tauMenuDefs.py @@ -10,10 +10,10 @@ import AthenaCommon.CfgMgr as CfgMgr from InDetRecExample.InDetJobProperties import InDetFlags InDetFlags.doCaloSeededBrem = False -InDetFlags.InDet25nsec = True -InDetFlags.doPrimaryVertex3DFinding = False +InDetFlags.InDet25nsec = True +InDetFlags.doPrimaryVertex3DFinding = False InDetFlags.doPrintConfigurables = False -InDetFlags.doResolveBackTracks = True +InDetFlags.doResolveBackTracks = True InDetFlags.doSiSPSeededTrackFinder = True InDetFlags.doTRTPhaseCalculation = True InDetFlags.doTRTSeededTrackFinder = True @@ -24,7 +24,7 @@ InDetFlags.init() #include("InDetRecExample/InDetRecConditionsAccess.py") from InDetRecExample.InDetKeys import InDetKeys -# menu components +# menu components from TriggerMenuMT.HLTMenuConfig.Menu.MenuComponents import MenuSequence # =============================================================================================== @@ -38,7 +38,7 @@ cellMaker.OutputLevel=DEBUG from TrigCaloRec.TrigCaloRecConfig import TrigCaloClusterMakerMT_topo clusMaker = TrigCaloClusterMakerMT_topo("CaloClusMakerTopo") clusMaker.OutputLevel=VERBOSE - + from AthenaCommon.CFElements import parOR, seqOR, seqAND, stepSeq from ViewAlgs.ViewAlgsConf import EventViewCreatorAlgorithm @@ -74,10 +74,10 @@ from TrigTauHypo.TrigTauHypoConf import TrigTauCaloHypoAlgMT fastCaloHypo = TrigTauCaloHypoAlgMT("TauGenericHypoMT") fastCaloHypo.OutputLevel = DEBUG -from TrigTauHypo.TrigL2TauHypoTool import TrigTauHypoProvider +from TrigTauHypo.TrigL2TauHypoTool import TrigL2TauHypoToolFromDict def tauCaloSequence(): return MenuSequence( Sequence = fastCaloAthSequence, Maker = fastCaloViewsMaker, Hypo = fastCaloHypo, - HypoToolGen = TrigTauHypoProvider ) + HypoToolGen = TrigL2TauHypoToolFromDict ) diff --git a/Trigger/TrigValidation/TrigUpgradeTest/share/pebTest.py b/Trigger/TrigValidation/TrigUpgradeTest/share/pebTest.py index 874c41acd26867914eeb6295763ad1d80e2df916..c45457cb1e63bba9315d8c580d82f0c73ab23bfb 100644 --- a/Trigger/TrigValidation/TrigUpgradeTest/share/pebTest.py +++ b/Trigger/TrigValidation/TrigUpgradeTest/share/pebTest.py @@ -20,6 +20,7 @@ testChains = [] ################################################################## from TrigUpgradeTest.pebMenuDefs import pebInfoWriterSequence + ################################################################## # egamma chains ################################################################## diff --git a/Trigger/TrigValidation/TriggerTest/test/test_slice_bphysics_build.sh b/Trigger/TrigValidation/TriggerTest/test/test_slice_bphysics_build.sh index 72b925941d2989ecc9c60647bd93d433f8f5a7c2..dcb64a930a65751e153f5e1c695c7e7d4889c717 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_slice_bphysics_build.sh +++ b/Trigger/TrigValidation/TriggerTest/test/test_slice_bphysics_build.sh @@ -25,6 +25,7 @@ export SLICE="bphysics" export INPUT="bphysics" export EVENTS="10" export COST_MONITORING="False" +export EXTRA="jp.AthenaCommonFlags.SkipEvents.set_Value_and_Lock(3);" source exec_athena_art_trigger_validation.sh source exec_art_triggertest_post.sh diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/MenuComponents.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/MenuComponents.py index 278b4c6f4507e196ed8c6d876aacc91743e4a376..b9fc1072f79a45dac54d888eeab3455800246283 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/MenuComponents.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/MenuComponents.py @@ -18,24 +18,24 @@ class Node(): self.Alg=Alg self.inputs=[] self.outputs=[] - + def addOutput(self, name): self.outputs.append(name) def addInput(self, name): self.inputs.append(name) - def getOutputList(self): + def getOutputList(self): return self.outputs - def getInputList(self): + def getInputList(self): return self.inputs def __str__(self): return "Node::%s [%s] -> [%s]"%(self.Alg.name(), ' '.join(map(str, self.getInputList())), ' '.join(map(str, self.getOutputList()))) - + class AlgNode(Node): """Node class that connects inputs and outputs to basic alg. properties """ def __init__(self, Alg, inputProp, outputProp): @@ -46,7 +46,7 @@ class AlgNode(Node): def addDefaultOutput(self): if self.outputProp is not '': self.addOutput(("%s_%s"%(self.Alg.name(),self.outputProp))) - + def setPar(self, prop, name): cval = self.Alg.getProperties()[prop] try: @@ -75,19 +75,19 @@ class AlgNode(Node): else: sys.exit("no OutputProp set") Node.addOutput(self, name) - + def readOutputList(self): outputs = [] cval = self.getPar(self.outputProp) if cval == '': return outputs - if type(cval) == type(list()): + if type(cval) == type(list()): outputs.extend(cval) else: outputs.append(cval) return outputs - + def addInput(self, name): inputs = self.readInputList() if name in inputs: @@ -105,7 +105,7 @@ class AlgNode(Node): cval = self.getPar(self.inputProp) if cval =='': return inputs - if type(cval) == type(list()): + if type(cval) == type(list()): inputs.extend(cval) else: inputs.append(cval) @@ -113,7 +113,7 @@ class AlgNode(Node): def __str__(self): return "Alg::%s [%s] -> [%s]"%(self.Alg.name(), ' '.join(map(str, self.getInputList())), ' '.join(map(str, self.getOutputList()))) - + class HypoToolConf(): """ Class to group info on hypotools""" @@ -122,17 +122,22 @@ class HypoToolConf(): self.name='' self.conf='' - def setName(self, name): - self.name=name + def setConf( self, chainDict): + if type(chainDict) != type({}): + raise RuntimeError("Configuring hypo with %s, not good anymore, use chainDict" % str(chainDict) ) + self.chainDict = chainDict - def setConf(self, conf): - self.conf=conf + # def setName(self, name): + # self.name=name + + # def setConf(self, conf): + # self.conf=conf def create(self): """creates instance of the hypo tool""" - return self.hypoToolGen( self.name, self.conf ) + return self.hypoToolGen( self.chainDict ) + - class HypoAlgNode(AlgNode): """Node for HypoAlgs""" def __init__(self, Alg): @@ -142,19 +147,19 @@ class HypoAlgNode(AlgNode): self.previous=[] def addHypoTool (self, hypoToolConf): - - if hypoToolConf.name not in self.tools: + print "here", hypoToolConf.chainDict + if hypoToolConf.chainDict['chainName'] not in self.tools: ## HypoTools are private, so need to be created when added to the Alg ## this incantation may seem strange, however it is the only one which works ## trying tool = hypoToolConf.create() and then assignement does not work! will be no problem in run3 config tools = self.Alg.HypoTools self.Alg.HypoTools = tools+[hypoToolConf.create()] - self.tools.append( hypoToolConf.name ) + self.tools.append( self.Alg.HypoTools[-1].getName() ) # should not be needed anymore else: - raise RuntimeError("The hypo tool of name "+ hypoToolConf.name +" already present") - + raise RuntimeError("The hypo tool of name "+ hypoToolConf.chainDict['chainName'] +" already present") + - def setPreviousDecision(self,prev): + def setPreviousDecision(self,prev): self.previous.append(prev) return self.addInput(prev) @@ -170,11 +175,11 @@ class SequenceFilterNode(AlgNode): """Node for any kind of sequence filter""" def __init__(self, Alg, inputProp, outputProp): AlgNode.__init__(self, Alg, inputProp, outputProp) - + def setChains(self, name): log.debug("Adding Chain %s to filter %s"%(name, self.Alg.name())) return self.setPar("Chains", name) - + def getChains(self): return self.getPar("Chains") @@ -206,16 +211,16 @@ class ComboMaker(AlgNode): self.prop="MultiplicitiesMap" - def addChain(self, chain): + def addChain(self, chain): log.debug("ComboMaker %s adding chain %s"%(self.Alg.name(),chain)) from TriggerMenuMT.HLTMenuConfig.Menu import DictFromChainName dictDecoding = DictFromChainName.DictFromChainName() allMultis = dictDecoding.getChainMultFromName(chain) print "chain ", chain print "WOOF allMultis", allMultis - newdict = {chain : allMultis} - - for i in range(1, len(allMultis)): + newdict = {chain : allMultis} + + for i in range(1, len(allMultis)): print "MEOW multiplicity ", allMultis[i] cval = self.Alg.getProperties()[self.prop] # check necessary to see if chain was added already? print "MEOW cval ", cval @@ -228,7 +233,7 @@ class ComboMaker(AlgNode): else: cval=newdict setattr(self.Alg, self.prop, cval) - + ######################################################### @@ -256,7 +261,7 @@ class WrappedList: def __setitem__(self, item): return self._lst.append(item) - + #class duplicatedHypos(WrappedList): ## allAlgs={} @@ -274,12 +279,12 @@ class WrappedList: ## allAlgs[name] = instance ## return instance - + ########################################################## # NOW sequences and chains ########################################################## - + class MenuSequence(): """ Class to group reco sequences with the Hypo""" def __init__(self, Sequence, Maker, Hypo, HypoToolGen, CA=None ): @@ -298,34 +303,34 @@ class MenuSequence(): def replaceHypoForCombo(self, HypoAlg): log.debug("set new Hypo %s for combo sequence %s "%(HypoAlg.name(), self.name)) self.hypo= HypoAlgNode( Alg=HypoAlg ) - + def connectToFilter(self, outfilter): """ Sets the input and output of the hypo, and links to the input maker """ #### Connect filter to the InputMaker - self.maker.addInput(outfilter) + self.maker.addInput(outfilter) input_maker_output = CFNaming.inputMakerOutName(self.maker.Alg.name(),outfilter) - self.maker.addOutput(input_maker_output) + self.maker.addOutput(input_maker_output) #### Add input/output Decision to Hypo self.hypo.setPreviousDecision( input_maker_output) hypo_output = CFNaming.hypoAlgOutName(self.hypo.Alg.name(), input_maker_output) if len(self.hypo.getOutputList()): log.error("Hypo " + self.hypo.name() +" has already an output configured: you may want to duplicate the Hypo!") - sys.exit("ERROR, in chain configuration") + sys.exit("ERROR, in chain configuration") self.hypo.addOutput(hypo_output) # needed for drawing self.inputs.append(outfilter) self.outputs.append(hypo_output) - + log.debug("MenuSequence.connectToFilter: connecting InputMaker and HypoAlg, adding: \n\ InputMaker::%s.output=%s, \n\ HypoAlg::%s.previousDecision=%s, \n\ HypoAlg::%s.output=%s",\ self.maker.Alg.name(), input_maker_output, self.hypo.Alg.name(), input_maker_output, self.hypo.Alg.name(), hypo_output ) - + def __str__(self): return "MenuSequence::%s \n Hypo::%s \n Maker::%s \n Sequence::%s"%(self.name, self.hypo, self.maker, self.sequence) @@ -348,8 +353,8 @@ def DoMapSeedToL1Decoder(seed): stripSeed = filter(lambda x: x.isalpha(), seed) if stripSeed not in mapSeedToL1Decoder: log.error("Seed "+ seed + " not mapped to any Decision objects! Available are: " + str(mapSeedToL1Decoder.values())) - sys.exit("ERROR, in chain configuration") - return (mapSeedToL1Decoder[stripSeed]) + sys.exit("ERROR, in chain configuration") + return (mapSeedToL1Decoder[stripSeed]) ################################################# @@ -357,10 +362,10 @@ class Chain: """Basic class to define the trigger menu """ def __init__(self, name, Seed, ChainSteps=[]): self.name = name - self.steps=ChainSteps + self.steps=ChainSteps self.seed=Seed self.vseeds=[] - vseeds = Seed.strip().split("_") + vseeds = Seed.strip().split("_") vseeds.pop(0) #remove first L1 string # split multi seeds for seed in vseeds: @@ -369,18 +374,18 @@ class Chain: if not mult: mult=1 else: mult=int(mult) # print mult,single - for m in range(0,mult): self.vseeds.append(single) - + for m in range(0,mult): self.vseeds.append(single) + # group_seed is used to se tthe seed type (EM, MU,JET), removing the actual threshold # in practice it is the L1Decoder Decision output self.group_seed = [DoMapSeedToL1Decoder(stri) for stri in self.vseeds] self.setSeedsToSequences() # save seed of each menuseq log.debug("Chain " + name + " with seeds: %s "%str( self.vseeds)) - for step in self.steps: + for step in self.steps: if step.isCombo: step.combo.addChain(self.name) - + def setSeedsToSequences(self): # set the seed to the menusequences sequences1=self.steps[0].sequences @@ -394,32 +399,37 @@ class Chain: seq.seed ="L1"+filter(lambda x: x.isalpha(), seed) log.debug( "Chain %s adding seed %s to sequence %d in step %s"%(self.name, seq.seed, nseq, step.name)) nseq+=1 - + else: log.error("found %d sequences in this chain and %d seeds. What to do??", tot_seq, tot_seed) - sys.exit("ERROR, in chain configuration") - + sys.exit("ERROR, in chain configuration") + def decodeHypoToolConfs(self, allChainDicts): """ This is extrapolating the hypotool configuration from the (combined) chain name""" - from TriggerMenuMT.HLTMenuConfig.Menu.TriggerConfigHLT import getConfFromChainName - signatures = getConfFromChainName(self.name, allChainDicts) + #from TriggerMenuMT.HLTMenuConfig.Menu.TriggerConfigHLT import getConfFromChainName + from TriggerMenuMT.HLTMenuConfig.Menu.TriggerConfigHLT import getChainDictFromChainName + chainDict = getChainDictFromChainName(self.name, allChainDicts) + + print "got here", chainDict for step in self.steps: - if len(signatures) != len(step.sequences): - log.error("Error in step %s: found %d signatures and %d sequences"%(step.name, len(signatures), len(step.sequences))) + if len(chainDict['chainParts']) != len(step.sequences): + log.error("Error in step %s: found %d chain parts and %d sequences"%(step.name, len(chainDict['chainParts']), len(step.sequences))) sys.exit("ERROR, in chain configuration") - nseq=0 - for seq in step.sequences: + + for seq, chainDictPart in zip(step.sequences, chainDict['chainParts']): if seq.ca != None: # The CA merging took care of everything continue - seq.hypoToolConf.setConf(signatures[nseq]) - seq.hypoToolConf.setName(self.name) + import copy + onePartChainDict = copy.deepcopy( chainDict ) + onePartChainDict['chainParts'] = [ chainDictPart ] + + seq.hypoToolConf.setConf( onePartChainDict ) seq.hypo.addHypoTool(seq.hypoToolConf) - nseq +=1 - + class CFSequence(): """Class to describe the ChainStep + filter - + """ def __init__(self, ChainStep, FilterAlg): self.filter = FilterAlg @@ -428,7 +438,7 @@ class CFSequence(): def connect(self): """Connect filter to ChainStep (all its sequences) - if a ChainStep contains the same sequence multiple times (for multi-object chains), + if a ChainStep contains the same sequence multiple times (for multi-object chains), the filter is connected only once (to avoid multiple DH links) """ @@ -442,8 +452,8 @@ class CFSequence(): if len(filter_output) != len(self.step.sequences): log.error("Found %d filter outputs and %d MenuSequences in Step %s"%( len(self.filter.getOutputList()), len(self.step.sequences), self.step.name)) sys.exit("ERROR: Found %d filter outputs differnt from %d MenuSequences in Step %s"%( len(self.filter.getOutputList()), len(self.step.sequences), self.step.name)) - - + + nseq=0 for seq in self.step.sequences: filter_out = filter_output[nseq] @@ -451,7 +461,7 @@ class CFSequence(): seq.connectToFilter( filter_out ) #seq.connectToFilter(self.filter, filter_out ) nseq+=1 - + if self.step.isCombo: self.connectCombo() @@ -459,7 +469,7 @@ class CFSequence(): # reset sequence output, they will b ereplaced by new combo outputs for seq in self.step.sequences: seq.outputs=[] - + for seq in self.step.sequences: combo_input=seq.hypo.getOutputList()[0] self.step.combo.addInput(combo_input) @@ -470,12 +480,12 @@ class CFSequence(): self.step.combo.addOutput(combo_output) seq.outputs.append(combo_output) log.debug("Adding outputs %s to combo %s"%(combo_output, self.step.combo.Alg.name())) - - + + def __str__(self): return "--- CFSequence ---\n + Filter: %s \n + %s \n "%(\ self.filter, self.step ) - + class ChainStep: """Class to describe one step of a chain; if more than one menuSequence, then the step is combo""" @@ -484,27 +494,27 @@ class ChainStep: self.sequences=[] self.isCombo=len(Sequences)>1 self.combo=None - if self.isCombo: + if self.isCombo: self.makeCombo(Sequences) else: - self.sequences = Sequences + self.sequences = Sequences - def makeCombo(self, Sequences): + def makeCombo(self, Sequences): # For combo sequences, duplicate the sequence, the Hypo with differnt names and create the ComboHypoAlg self.combo = ComboMaker(CFNaming.comboHypoName(self.name)) duplicatedHypos = [] - for sequence in Sequences: + for sequence in Sequences: oldhypo=sequence.hypo.Alg duplicatedHypos.append(oldhypo.name()) ncopy=duplicatedHypos.count(oldhypo.name()) - + new_sequence=copy.deepcopy(sequence) new_sequence.name = CFNaming.comboSequenceCopyName(sequence.name,ncopy, self.name) - + newHypoAlgName = CFNaming.comboHypoCopyName(oldhypo.name(),ncopy, self.name) new_hypoAlg=oldhypo.clone(newHypoAlgName) new_sequence.replaceHypoForCombo(new_hypoAlg) - self.sequences.append(new_sequence) + self.sequences.append(new_sequence) def __str__(self): return "--- ChainStep %s ---\n + isCombo: %d \n + %s \n "%(self.name, self.isCombo, ' '.join(map(str, self.sequences) )) @@ -513,7 +523,7 @@ class ChainStep: # this is fragment for New JO - + from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator class InEventReco( ComponentAccumulator ): """ Class to handle in-event reco """ @@ -531,7 +541,7 @@ class InViewReco( ComponentAccumulator ): from ViewAlgs.ViewAlgsConf import EventViewCreatorAlgorithm if viewMaker: - self.viewMakerAlg = viewMaker + self.viewMakerAlg = viewMaker else: from AthenaCommon.Constants import DEBUG self.viewMakerAlg = EventViewCreatorAlgorithm(name+'ViewsMaker', @@ -543,9 +553,9 @@ class InViewReco( ComponentAccumulator ): OutputLevel=DEBUG) self.addEventAlgo( self.viewMakerAlg, self.mainSeq.name() ) - self.viewsSeq = parOR( self.viewMakerAlg.ViewNodeName ) + self.viewsSeq = parOR( self.viewMakerAlg.ViewNodeName ) self.addSequence( self.viewsSeq, self.mainSeq.name() ) - + def addInputFromFilter(self, filterAlg ): assert len(filterAlg.Output) == 1, "Can only oprate on filter algs with one configured output, use addInput to setup specific inputs" self.addInput( filterAlg.Output[0], "Reco_"+( filterAlg.Output[0].replace("Filtered_", "") ) ) @@ -571,7 +581,7 @@ class InViewReco( ComponentAccumulator ): return self.mainSeq def inputMaker( self ): - return self.viewMakerAlg + return self.viewMakerAlg class RecoFragmentsPool: @@ -581,7 +591,7 @@ class RecoFragmentsPool: def retrieve( cls, creator, flags, **kwargs ): """ create, or return created earlier reco fragment - Reco fragment is uniquelly identified by the function and set og **kwargs. + Reco fragment is uniquelly identified by the function and set og **kwargs. The flags are not part of unique identifier as creation of new reco fragments should not be caused by difference in the unrelated flags. TODO, if that code survives migration to New JO we need to handle the case when the creator is an inner function """ @@ -596,7 +606,7 @@ class RecoFragmentsPool: log.debug( "reconstruction fragment that would be created from %s is taken from the cache" % creator.func_name ) return cls.fragments[requestHash] - + class NJMenuSequence( ComponentAccumulator ): def __init__( self, name ): super( NJMenuSequence, self ).__init__() @@ -656,13 +666,13 @@ class HLTMenuAccumulator( ComponentAccumulator ): def __getOrMakeStepSequence(self, step, isFilter = False ): """ Constructs sequence for the step, the filtering step or, reco step will be created depending on isFilter flags - + The function assures that all previous steps are aready in place i.e. HLTStep_1_filter, HLTStep_1 ... until HLTStep_N-1 are in place. Therefore the steps can be added in any order (not yet sure if that will but better assure robustness now) """ from AthenaCommon.CFElements import parOR name = "HLTStep_%d%s" % (step, "_filters" if isFilter else "" ) - + s = self.getSequence( name ) if s: return s @@ -678,9 +688,9 @@ class HLTMenuAccumulator( ComponentAccumulator ): return s - def setupSteps( self, steps ): + def setupSteps( self, steps ): """ The main menu function, it is responsible for crateion of step sequences and placing slice specific sequencers there. - + It would rely on the MenuSeq object API in two aspects, to obtain filter alg and to obtain the reco sequence The MenuSeq should already contain all the chains that are needed for the menu setup (chains info can be accessed via flags passed when steps were created) """ @@ -688,10 +698,10 @@ class HLTMenuAccumulator( ComponentAccumulator ): filterStep = self.__getOrMakeStepSequence( stepNo, isFilter = True ) filterStep += fhSeq.filter() # FilterHypoSequence API - recoStep = self.__getOrMakeStepSequence( stepNo, isFilter = False ) + recoStep = self.__getOrMakeStepSequence( stepNo, isFilter = False ) self.addSequence( fhSeq.sequence(), recoStep.name() ) - + def steps( self ): """ returns step seqeuncers """ return self.getSequence("HLTSteps") diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/TriggerConfigHLT.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/TriggerConfigHLT.py index 76141fa52238d5aa4eb0f2f5850536a1a935807c..a05458ebd87796ed02b7fc787fa1bf1c3e17a279 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/TriggerConfigHLT.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/TriggerConfigHLT.py @@ -55,7 +55,11 @@ class TriggerConfigHLT: log.info("Writing of config files needs to be implemented") - +__chainsDict = {} +def getChainDictFromChainName(chainName, allChainDicts = None): + if __chainsDict == {}: + __chainsDict.update( [ (c['chainName'], c) for c in allChainDicts ] ) + return __chainsDict[chainName] ############################## # this function was supposed to be part of the class but doesn't work for now @@ -79,10 +83,6 @@ def getConfFromChainName(chainName, allChainDicts = None): if chainName == cDict["chainName"]: for cPart in cDict["chainParts"]: cPName = cPart['chainPartName'] - if "1step" in cPName: - import re - cPName=re.sub('1step', '', cPName) - log.warning("Removing string 1step from hypoTool conf - this needs to be removed eventually") if "HLT_" in cPName: chainPartNames.append(cPName) else: