diff --git a/AtlasTest/DatabaseTest/IOVDbTestConditions/CMakeLists.txt b/AtlasTest/DatabaseTest/IOVDbTestConditions/CMakeLists.txt index 1913081ff44708e035457212af00e992432b0e12..f27f17e594ae1cfae4a247b21446be9e086a6d81 100644 --- a/AtlasTest/DatabaseTest/IOVDbTestConditions/CMakeLists.txt +++ b/AtlasTest/DatabaseTest/IOVDbTestConditions/CMakeLists.txt @@ -7,8 +7,7 @@ atlas_subdir( IOVDbTestConditions ) # Declare the package's dependencies: atlas_depends_on_subdirs( PUBLIC - Control/CLIDSvc - Control/SGTools + Control/AthenaKernel Database/AthenaPOOL/AthenaPoolUtilities ) # External dependencies: @@ -23,12 +22,12 @@ atlas_add_library( IOVDbTestConditions INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} PRIVATE_INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} DEFINITIONS ${CLHEP_DEFINITIONS} - LINK_LIBRARIES ${CLHEP_LIBRARIES} SGTools AthenaPoolUtilities + LINK_LIBRARIES ${CLHEP_LIBRARIES} AthenaKernel AthenaPoolUtilities PRIVATE_LINK_LIBRARIES ${ROOT_LIBRARIES} ) atlas_add_dictionary( IOVDbTestConditionsDict IOVDbTestConditions/IOVDbTestConditionsDict.h IOVDbTestConditions/selection.xml INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} ${CLHEP_LIBRARIES} SGTools AthenaPoolUtilities IOVDbTestConditions ) + LINK_LIBRARIES ${ROOT_LIBRARIES} ${CLHEP_LIBRARIES} AthenaKernel AthenaPoolUtilities IOVDbTestConditions ) diff --git a/AtlasTest/DatabaseTest/IOVDbTestConditions/IOVDbTestConditions/IOVDbTestAmdbCorrection.h b/AtlasTest/DatabaseTest/IOVDbTestConditions/IOVDbTestConditions/IOVDbTestAmdbCorrection.h index 77ceda9a506bb483a98f9684c3d7166612b3fd78..042f9cf6131e33ae5decd0f4437d8f34598634d4 100755 --- a/AtlasTest/DatabaseTest/IOVDbTestConditions/IOVDbTestConditions/IOVDbTestAmdbCorrection.h +++ b/AtlasTest/DatabaseTest/IOVDbTestConditions/IOVDbTestConditions/IOVDbTestAmdbCorrection.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ /*************************************************************************** @@ -14,7 +14,7 @@ #ifndef IOVDBTEST_AMDB_CORRECTION_H #define IOVDBTEST_AMDB_CORRECTION_H -#include "CLIDSvc/CLASS_DEF.h" +#include "AthenaKernel/CLASS_DEF.h" #include "CLHEP/Geometry/Point3D.h" class IOVDbTestAmdbCorrection{ diff --git a/AtlasTest/DatabaseTest/IOVDbTestConditions/IOVDbTestConditions/IOVDbTestMDTEleMap.h b/AtlasTest/DatabaseTest/IOVDbTestConditions/IOVDbTestConditions/IOVDbTestMDTEleMap.h index 2a577c3392043ec60d62b789423096e81aa9bbf0..a24f72aed893a87b27919cba59b2dd7c259e9638 100755 --- a/AtlasTest/DatabaseTest/IOVDbTestConditions/IOVDbTestConditions/IOVDbTestMDTEleMap.h +++ b/AtlasTest/DatabaseTest/IOVDbTestConditions/IOVDbTestConditions/IOVDbTestMDTEleMap.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ /*************************************************************************** @@ -13,7 +13,7 @@ //<doc><file> $Id: IOVDbTestMDTEleMap.h,v 1.5 2006-03-26 17:26:30 schaffer Exp $ //<version> $Name: not supported by cvs2svn $ -#include "CLIDSvc/CLASS_DEF.h" +#include "AthenaKernel/CLASS_DEF.h" #include<string> #define DIGIT 0 diff --git a/AtlasTest/DatabaseTest/IOVDbTestConditions/IOVDbTestConditions/IOVDbTestMDTEleMapColl.h b/AtlasTest/DatabaseTest/IOVDbTestConditions/IOVDbTestConditions/IOVDbTestMDTEleMapColl.h index e91ffd319cbb932e79da4e8f485ec306e6f18cbe..308d235489c29ac3185cb9171e94d4b78d635a7c 100755 --- a/AtlasTest/DatabaseTest/IOVDbTestConditions/IOVDbTestConditions/IOVDbTestMDTEleMapColl.h +++ b/AtlasTest/DatabaseTest/IOVDbTestConditions/IOVDbTestConditions/IOVDbTestMDTEleMapColl.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ #ifndef IOVDBTESTCONDITIONS_IOVDBTESTMDTELEMAPCOLL_H @@ -7,7 +7,7 @@ #include "AthenaPoolUtilities/CondMultChanCollection.h" #include "IOVDbTestConditions/IOVDbTestMDTEleMap.h" -#include "CLIDSvc/CLASS_DEF.h" +#include "AthenaKernel/CLASS_DEF.h" /**This typedef represents a collection of IOVDbTestMDTEleMap objects. It is a DataVector. It can be saved diff --git a/AtlasTest/TestTools/share/post.sh b/AtlasTest/TestTools/share/post.sh index f8ccaa93553b97ddb1e65aff2d23770cb6a44a67..1cae95b38bce46ec6167d2283752be28059d56b3 100755 --- a/AtlasTest/TestTools/share/post.sh +++ b/AtlasTest/TestTools/share/post.sh @@ -200,6 +200,7 @@ PP="$PP"'|INFO TopAlg list empty.' PP="$PP"'|^ChronoStatSvc +INFO +Number of skipped events for MemStat' PP="$PP"'|^Py:Athena +INFO +including file' PP="$PP"'|^Athena +INFO +including file' +PP="$PP"'|statistics are unreliable' # Ignore annoying error from root 6.10.06 PP="$PP"'|no interpreter information for class TSelectorCint' diff --git a/Calorimeter/CaloUtils/CMakeLists.txt b/Calorimeter/CaloUtils/CMakeLists.txt index 60922cc97bc57ac5b98a5014c3baf826e6060966..727022bffb2abc354a5cbc23318211e44458206e 100644 --- a/Calorimeter/CaloUtils/CMakeLists.txt +++ b/Calorimeter/CaloUtils/CMakeLists.txt @@ -89,7 +89,7 @@ atlas_add_test( CaloTowerStore_test atlas_add_test( CaloTowerBuilderTool_test SCRIPT test/CaloTowerBuilderTool_test.sh EXTRA_PATTERNS "[0-9] [A-Z]+ 20[123][0-9]|Reading file|^CORAL/Services/ConnectionService (Info|Warning)|^RelationalDatabase Info|^Data source lookup|^DetDescrCnvSvc +INFO|^CORAL/RelationalPlugins/frontier Info|^PluginManager Info|^RalSessionMgr Warning|^DBReplicaSvc +INFO|IOVDbSvc +INFO|^Py:Athena +INFO|^EventInfoMgtInit: Got release|^TEnvRec::ChangeValue|^PoolSvc +INFO|^PoolSvc +WARNING Unable to locate catalog|being retired|including file|Deaccess DbDatabase|^IoComponentMgr +INFO|File version|Global positioning|^Domain|duplicate entry|already loaded|RootDbase: all good|frontier.c|^Py:ConfigurableDb +(WARNING|INFO)|ApplicationMgr +INFO|INFO [sS]top|^CaloIdMgrDetDes.*INFO|^TTOnlineIDDetDe.*INFO|^CaloIDHelper_ID.*INFO|^AtlasDetectorID +INFO|^AthenaEventLoopMgrWARNING|^CaloDM_IDDetDes.*INFO|^CaloLVL1_IDDetD.*INFO|^LArFCAL_ID +INFO|^LArMiniFCAL_IDD.*INFO|^LArHEC_ID +INFO|^LArMiniFCAL_ID +INFO|TileTBIdDetDesc.*INFO|^TileIDDetDescrCnv +INFO|CaloCell_IDDetD.*INFO|TileID +INFO|^LArFCAL_IDDetDe.*INFO|^TileTBIDDetDesc.*INFO|^LArEM_ID +INFO|^LArHEC_IDDetDes.*INFO|^LArEM_IDDetDesc.*INFO|^EndcapDMConstru.*INFO|^GeoModelSvc +INFO|USHAPE|U-shape|Cs Tube|XMLFileCatalog Info|No IOVSvcTool associated|^RalSessionMgr Info|RDBMS technology|INFO Found unknown streamer checksum|^GUID: Class pool::DbString has GUID|^AthenaRootStrea.* INFO|INFO TileDddbManager|oracle Info" - ENVIRONMENT "ATLAS_REFERENCE_TAG=CaloUtils/CaloUtils-01-00-08" + ENVIRONMENT "ATLAS_REFERENCE_TAG=CaloUtils/CaloUtils-01-00-09" PROPERTIES TIMEOUT 500 ) # Install files from the package: diff --git a/Calorimeter/CaloUtils/share/CaloTowerStore_test.ref b/Calorimeter/CaloUtils/share/CaloTowerStore_test.ref index fbf195315ba8cc1e9245198a5ec5dec729f8672a..03fb65f0d62587aed7bb2e9eadb24a62626a3da3 100644 --- a/Calorimeter/CaloUtils/share/CaloTowerStore_test.ref +++ b/Calorimeter/CaloUtils/share/CaloTowerStore_test.ref @@ -1,14 +1,14 @@ -Fri Oct 19 19:57:07 CEST 2018 +Thu Dec 6 05:00:07 CET 2018 Preloading tcmalloc_minimal.so Py:Athena INFO including file "AthenaCommon/Preparation.py" -Py:Athena INFO using release [AthenaWorkDir-22.0.1] [x86_64-slc6-gcc62-dbg] [atlas-work3/88b41a9d745] -- built on [2018-10-19T1947] +Py:Athena INFO using release [AthenaWorkDir-22.0.1] [x86_64-slc6-gcc8-opt] [atlas-work3/fa0fd6d0989] -- built on [2018-12-06T0456] Py:Athena INFO including file "AthenaCommon/Atlas.UnixStandardJob.py" Py:Athena INFO executing ROOT6Setup Py:Athena INFO including file "AthenaCommon/Execution.py" Py:Athena INFO including file "CaloUtils/CaloTowerStore_test.py" SetGeometryVersion.py obtained major release version 22 Py:Athena INFO including file "IdDictDetDescrCnv/IdDictDetDescrCnv_joboptions.py" -Py:ConfigurableDb INFO Read module info for 5522 configurables from 57 genConfDb files +Py:ConfigurableDb INFO Read module info for 5472 configurables from 61 genConfDb files Py:ConfigurableDb INFO No duplicates have been found: that's good ! EventInfoMgtInit: Got release version Athena-22.0.1 Py:IOVDbSvc.CondDB INFO Setting up conditions DB access to instance OFLP200 @@ -22,8 +22,8 @@ Py:Athena INFO including file "AthenaCommon/runbatch.py" ApplicationMgr INFO Updating Gaudi::PluginService::SetDebug(level) to level= 'PluginDebugLevel':0 ApplicationMgr SUCCESS ==================================================================================================================================== - Welcome to ApplicationMgr (GaudiCoreSvc v30r3) - running on lxplus055.cern.ch on Fri Oct 19 19:57:23 2018 + Welcome to ApplicationMgr (GaudiCoreSvc v30r5) + running on lxplus093.cern.ch on Thu Dec 6 05:00:29 2018 ==================================================================================================================================== ApplicationMgr INFO Successfully loaded modules : AthenaServices ApplicationMgr INFO Application Manager Configured successfully @@ -40,8 +40,8 @@ PoolSvc INFO io_register[PoolSvc](xmlcatalog_file:PoolFileCatalog.x PoolSvc INFO Set connectionsvc retry/timeout/IDLE timeout to 'ConnectionRetrialPeriod':300/ 'ConnectionRetrialTimeOut':3600/ 'ConnectionTimeOut':5 seconds with connection cleanup disabled PoolSvc INFO Frontier compression level set to 5 DBReplicaSvc INFO Frontier server at (serverurl=http://atlasfrontier-local.cern.ch:8000/atlr)(serverurl=http://atlasfrontier-ai.cern.ch:8000/atlr)(serverurl=http://lcgft-atlas.gridpp.rl.ac.uk:3128/frontierATLAS)(serverurl=http://ccfrontier.in2p3.fr:23128/ccin2p3-AtlasFrontier)(proxyurl=http://ca-proxy.cern.ch:3128)(proxyurl=http://ca-proxy-meyrin.cern.ch:3128)(proxyurl=http://ca-proxy-wigner.cern.ch:3128)(proxyurl=http://atlasbpfrontier.cern.ch:3127)(proxyurl=http://atlasbpfrontier.fnal.gov:3127) will be considered for COOL data -DBReplicaSvc INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-10-18T2313/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/dbreplica.config -DBReplicaSvc INFO Total of 10 servers found for host lxplus055.cern.ch [ATLF ATLAS_COOLPROD atlas_dd ATLAS_CONFIG INT8R INTR ATONR_COOL ATONR_CONF DEVDB11 ATLF ] +DBReplicaSvc INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2353/Athena/22.0.1/InstallArea/x86_64-slc6-gcc8-opt/share/dbreplica.config +DBReplicaSvc INFO Total of 10 servers found for host lxplus093.cern.ch [ATLF ATLAS_COOLPROD atlas_dd ATLAS_CONFIG INT8R INTR ATONR_COOL ATONR_CONF DEVDB11 ATLF ] PoolSvc INFO Successfully setup replica sorting algorithm PoolSvc INFO Setting up APR FileCatalog and Streams PoolSvc WARNING Unable to locate catalog for prfile:poolcond/PoolCat_oflcond.xml check your ATLAS_POOLCOND_PATH and DATAPATH variables @@ -54,7 +54,7 @@ IOVDbSvc INFO Opened read transaction for POOL PersistencySvc IOVDbSvc INFO Only 5 POOL conditions files will be open at once IOVDbSvc INFO Cache alignment will be done in 3 slices IOVDbSvc INFO Global tag: OFLCOND-SDR-BS14T-IBL-06 set from joboptions -IOVDbSvc INFO Read from meta data only for folder /TagInfo +IOVDbFolder INFO Read from meta data only for folder /TagInfo IOVDbSvc INFO Initialised with 3 connections and 7 folders IOVDbSvc INFO Service IOVDbSvc initialised successfully IOVDbSvc INFO preLoadAddresses: Removing folder /TagInfo. It should only be in the file meta data and was not found. @@ -70,7 +70,7 @@ IOVDbSvc INFO Added taginfo remove for /CALO/Ofl/Identifier/CaloTTOn IOVDbSvc INFO Added taginfo remove for /CALO/Ofl/Identifier/CaloTTPpmRxIdMapAtlas IOVDbSvc INFO Added taginfo remove for /LAR/LArCellPositionShift IOVDbSvc INFO Added taginfo remove for /LAR/Identifier/LArTTCellMapAtlas -ClassIDSvc INFO getRegistryEntries: read 2132 CLIDRegistry entries for module ALL +ClassIDSvc INFO getRegistryEntries: read 2134 CLIDRegistry entries for module ALL ClassIDSvc INFO getRegistryEntries: read 17 CLIDRegistry entries for module ALL ClassIDSvc INFO getRegistryEntries: read 18 CLIDRegistry entries for module ALL DetDescrCnvSvc INFO initializing @@ -164,7 +164,7 @@ TileDddbManager INFO n_tileSwitches = 1 ClassIDSvc INFO getRegistryEntries: read 213 CLIDRegistry entries for module ALL CaloIDHelper_ID... INFO in createObj: creating a TileID helper object in the detector store AtlasDetectorID INFO initialize_from_dictionary - OK -TileNeighbour INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-10-18T2313/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/TileNeighbour_reduced.txt +TileNeighbour INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2353/Athena/22.0.1/InstallArea/x86_64-slc6-gcc8-opt/share/TileNeighbour_reduced.txt TileHWIDDetDesc... INFO in createObj: creating a TileHWID helper object in the detector store TileHWID INFO initialize_from_dictionary AtlasDetectorID INFO initialize_from_dictionary - OK @@ -176,9 +176,9 @@ CaloIDHelper_ID... INFO in createObj: creating a LArHEC_ID helper object in th AtlasDetectorID INFO initialize_from_dictionary - OK CaloIDHelper_ID... INFO in createObj: creating a LArFCAL_ID helper object in the detector store AtlasDetectorID INFO initialize_from_dictionary - OK -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-10-18T2313/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCal2DNeighbors-April2011.txt -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-10-18T2313/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCal3DNeighborsNext-April2011.txt -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-10-18T2313/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCal3DNeighborsPrev-April2011.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2353/Athena/22.0.1/InstallArea/x86_64-slc6-gcc8-opt/share/FCal2DNeighbors-April2011.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2353/Athena/22.0.1/InstallArea/x86_64-slc6-gcc8-opt/share/FCal3DNeighborsNext-April2011.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2353/Athena/22.0.1/InstallArea/x86_64-slc6-gcc8-opt/share/FCal3DNeighborsPrev-April2011.txt CaloIDHelper_ID... INFO in createObj: creating a LArMiniFCAL_ID helper object in the detector store AtlasDetectorID INFO initialize_from_dictionary - OK LArMiniFCAL_ID INFO initialize_from_dict - LArCalorimeter dictionary does NOT contain miniFCAL description. Unable to initialize LArMiniFCAL_ID. @@ -197,12 +197,10 @@ EventPersistenc... INFO Added successfully Conversion service:AthenaPoolCnvSvc EventPersistenc... INFO Added successfully Conversion service:TagInfoMgr ClassIDSvc INFO getRegistryEntries: read 2366 CLIDRegistry entries for module ALL IOVDbSvc INFO Opening COOL connection for COOLOFL_LAR/OFLP200 -IOVDbSvc INFO HVS tag OFLCOND-SDR-BS14T-IBL-06 resolved to LARAlign-mc11-00 for folder /LAR/Align -IOVDbSvc INFO HVS tag OFLCOND-SDR-BS14T-IBL-06 resolved to LArCellPositionShift-ideal for folder /LAR/LArCellPositionShift -IOVDbSvc INFO HVS tag OFLCOND-SDR-BS14T-IBL-06 resolved to LARIdentifierLArTTCellMapAtlas-HadFcalFix2 for folder /LAR/Identifier/LArTTCellMapAtlas +IOVDbFolder INFO HVS tag OFLCOND-SDR-BS14T-IBL-06 resolved to LARAlign-mc11-00 for folder /LAR/Align +IOVDbFolder INFO HVS tag OFLCOND-SDR-BS14T-IBL-06 resolved to LArCellPositionShift-ideal for folder /LAR/LArCellPositionShift +IOVDbFolder INFO HVS tag OFLCOND-SDR-BS14T-IBL-06 resolved to LARIdentifierLArTTCellMapAtlas-HadFcalFix2 for folder /LAR/Identifier/LArTTCellMapAtlas IOVDbSvc INFO Disconnecting from COOLOFL_LAR/OFLP200 -DbSession INFO Open DbSession -Domain[ROOT_All] INFO > Access DbDomain READ [ROOT_All] Domain[ROOT_All] INFO -> Access DbDatabase READ [ROOT_All] 06C9EAE8-6F5B-E011-BAAA-003048F0E7AC Domain[ROOT_All] INFO /cvmfs/atlas-condb.cern.ch/repo/conditions/cond09/cond09_mc.000029.gen.COND/cond09_mc.000029.gen.COND._0002.pool.root RootDatabase.open INFO /cvmfs/atlas-condb.cern.ch/repo/conditions/cond09/cond09_mc.000029.gen.COND/cond09_mc.000029.gen.COND._0002.pool.root File version:52200 @@ -225,12 +223,12 @@ CaloIDHelper_ID... INFO in createObj: creating a LArHEC_SuperCell_ID helper ob AtlasDetectorID INFO initialize_from_dictionary - OK CaloIDHelper_ID... INFO in createObj: creating a LArFCAL_SuperCell_ID helper object in the detector store AtlasDetectorID INFO initialize_from_dictionary - OK -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-10-18T2313/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells2DNeighborsNew-April2014.txt -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-10-18T2313/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells3DNeighborsNextNew-April2014.txt -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-10-18T2313/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells3DNeighborsPrevNew-April2014.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2353/Athena/22.0.1/InstallArea/x86_64-slc6-gcc8-opt/share/FCalSuperCells2DNeighborsNew-April2014.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2353/Athena/22.0.1/InstallArea/x86_64-slc6-gcc8-opt/share/FCalSuperCells3DNeighborsNextNew-April2014.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2353/Athena/22.0.1/InstallArea/x86_64-slc6-gcc8-opt/share/FCalSuperCells3DNeighborsPrevNew-April2014.txt CaloIDHelper_ID... INFO in createObj: creating a Tile_SuperCell_ID helper object in the detector store AtlasDetectorID INFO initialize_from_dictionary - OK -TileNeighbour INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-10-18T2313/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/TileSuperCellNeighbour.txt +TileNeighbour INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2353/Athena/22.0.1/InstallArea/x86_64-slc6-gcc8-opt/share/TileSuperCellNeighbour.txt AtlasDetectorID INFO initialize_from_dictionary - OK CaloIdMgrDetDes... INFO Finished CaloIdMgrDetDes... INFO Initializing CaloIdMgr from values in CaloIdMgrDetDescrCnv @@ -245,31 +243,30 @@ Domain[ROOT_All] INFO -> Deaccess DbDatabase READ [ROOT_All] 06C9EAE /cvmfs/atlas-co... INFO Database being retired... Domain[ROOT_All] INFO -> Deaccess DbDatabase READ [ROOT_All] 8667C6F2-1559-DE11-A611-000423D9A21A Domain[ROOT_All] INFO > Deaccess DbDomain READ [ROOT_All] -Domain[ROOT_All] INFO > Deaccess DbDomain READ [ROOT_All] ApplicationMgr INFO Application Manager Stopped successfully IncidentProcAlg1 INFO Finalize CondInputLoader INFO Finalizing CondInputLoader... IncidentProcAlg2 INFO Finalize IdDictDetDescrCnv INFO in finalize -IOVDbSvc INFO Folder /LAR/Align (PoolRef) db-read 1/1 objs/chan/bytes 1/1/170 (( 0.07 ))s -IOVDbSvc INFO Folder /CALO/Ofl/Identifier/CaloTTOnAttrIdMapAtlas (PoolRef) db-read 0/0 objs/chan/bytes 0/1/0 (( 0.00 ))s -IOVDbSvc INFO Folder /CALO/Ofl/Identifier/CaloTTOnOffIdMapAtlas (PoolRef) db-read 0/0 objs/chan/bytes 0/1/0 (( 0.00 ))s -IOVDbSvc INFO Folder /CALO/Ofl/Identifier/CaloTTPpmRxIdMapAtlas (PoolRef) db-read 0/0 objs/chan/bytes 0/1/0 (( 0.00 ))s -IOVDbSvc INFO Folder /LAR/LArCellPositionShift (PoolRef) db-read 1/1 objs/chan/bytes 1/1/195 (( 0.02 ))s -IOVDbSvc INFO Folder /LAR/Identifier/LArTTCellMapAtlas (PoolRef) db-read 1/0 objs/chan/bytes 1/1/173 (( 0.03 ))s -IOVDbSvc WARNING Folder /LAR/Identifier/LArTTCellMapAtlas is requested but no data retrieved -IOVDbSvc INFO Total payload read from COOL: 538 bytes in (( 0.11 ))s +IOVDbFolder INFO Folder /LAR/Align (PoolRef) db-read 1/1 objs/chan/bytes 1/1/170 (( 0.20 ))s +IOVDbFolder INFO Folder /CALO/Ofl/Identifier/CaloTTOnAttrIdMapAtlas (PoolRef) db-read 0/0 objs/chan/bytes 0/1/0 (( 0.00 ))s +IOVDbFolder INFO Folder /CALO/Ofl/Identifier/CaloTTOnOffIdMapAtlas (PoolRef) db-read 0/0 objs/chan/bytes 0/1/0 (( 0.00 ))s +IOVDbFolder INFO Folder /CALO/Ofl/Identifier/CaloTTPpmRxIdMapAtlas (PoolRef) db-read 0/0 objs/chan/bytes 0/1/0 (( 0.00 ))s +IOVDbFolder INFO Folder /LAR/LArCellPositionShift (PoolRef) db-read 1/1 objs/chan/bytes 1/1/195 (( 0.02 ))s +IOVDbFolder INFO Folder /LAR/Identifier/LArTTCellMapAtlas (PoolRef) db-read 1/0 objs/chan/bytes 1/1/173 (( 0.02 ))s +IOVDbFolder WARNING Folder /LAR/Identifier/LArTTCellMapAtlas is requested but no data retrieved +IOVDbSvc INFO bytes in (( 0.23 ))s IOVDbSvc INFO Connection sqlite://;schema=mycool.db;dbname=OFLP200 : nConnect: 0 nFolders: 0 ReadTime: (( 0.00 ))s -IOVDbSvc INFO Connection COOLOFL_LAR/OFLP200 : nConnect: 2 nFolders: 3 ReadTime: (( 0.11 ))s +IOVDbSvc INFO Connection COOLOFL_LAR/OFLP200 : nConnect: 2 nFolders: 3 ReadTime: (( 0.23 ))s IOVDbSvc INFO Connection COOLOFL_CALO/OFLP200 : nConnect: 1 nFolders: 3 ReadTime: (( 0.00 ))s AthDictLoaderSvc INFO in finalize... ToolSvc INFO Removing all tools created by ToolSvc *****Chrono***** INFO **************************************************************************************************** *****Chrono***** INFO The Final CPU consumption ( Chrono ) Table (ordered) *****Chrono***** INFO **************************************************************************************************** -cObjR_ALL INFO Time User : Tot= 0.63 [s] Ave/Min/Max=0.315(+-0.305)/ 0.01/ 0.62 [s] #= 2 -cObj_ALL INFO Time User : Tot= 0.81 [s] Ave/Min/Max=0.405(+-0.295)/ 0.11/ 0.7 [s] #= 2 -ChronoStatSvc INFO Time User : Tot= 18.2 [s] #= 1 +cObjR_ALL INFO Time User : Tot= 0.58 [s] Ave/Min/Max= 0.29(+- 0.28)/ 0.01/ 0.57 [s] #= 2 +cObj_ALL INFO Time User : Tot= 0.72 [s] Ave/Min/Max= 0.36(+- 0.27)/ 0.09/ 0.63 [s] #= 2 +ChronoStatSvc INFO Time User : Tot= 3.59 [s] #= 1 *****Chrono***** INFO **************************************************************************************************** ChronoStatSvc.f... INFO Service finalized successfully ApplicationMgr INFO Application Manager Finalized successfully diff --git a/Control/IOVSvc/src/CondInputLoader.cxx b/Control/IOVSvc/src/CondInputLoader.cxx index 8ad0f3eba38a9b57823dc1f7ad8fca560ecf2e7c..067e8dd7a8f8a664f102f587f66bf3951d242625 100644 --- a/Control/IOVSvc/src/CondInputLoader.cxx +++ b/Control/IOVSvc/src/CondInputLoader.cxx @@ -23,7 +23,7 @@ #include "AthenaKernel/CondContMaker.h" #include "xAODEventInfo/EventInfo.h" -#include "SGTools/BaseInfo.h" +#include "AthenaKernel/BaseInfo.h" #include "TClass.h" diff --git a/Control/IOVSvc/src/CondSvc.cxx b/Control/IOVSvc/src/CondSvc.cxx index 2d82a83be4524672a165fe4d249069cd6cfeb9ff..b38f7f2e457769677015c592564b788cc6c48892 100644 --- a/Control/IOVSvc/src/CondSvc.cxx +++ b/Control/IOVSvc/src/CondSvc.cxx @@ -1,11 +1,11 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ #include "IOVSvc/CondSvc.h" #include "AthenaKernel/CondCont.h" #include "GaudiKernel/EventIDBase.h" #include "AthenaKernel/StoreID.h" -#include "SGTools/BaseInfo.h" +#include "AthenaKernel/BaseInfo.h" //--------------------------------------------------------------------------- diff --git a/Control/IOVSvc/test/IOVSvcTool_test.cxx b/Control/IOVSvc/test/IOVSvcTool_test.cxx index 71d68f6a83cbc9713c83586a712433fe418d9e38..14b46ca0021a07ecc4ca40fd92ae8998baf74a96 100644 --- a/Control/IOVSvc/test/IOVSvcTool_test.cxx +++ b/Control/IOVSvc/test/IOVSvcTool_test.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ #undef NDEBUG @@ -12,7 +12,7 @@ #include <cassert> #include <iostream> -#include "SGTools/CLASS_DEF.h" +#include "AthenaKernel/CLASS_DEF.h" #include "SGTools/DataProxy.h" #include "SGTools/TransientAddress.h" using namespace SG; diff --git a/DataQuality/DataQualityTools/src/DQTGlobalWZFinderTool.cxx b/DataQuality/DataQualityTools/src/DQTGlobalWZFinderTool.cxx index 740bdd6fce4f5afaee93708f72e495291d0882a1..e9955f0047479827d5d0e20dce94be9bf51c0227 100644 --- a/DataQuality/DataQualityTools/src/DQTGlobalWZFinderTool.cxx +++ b/DataQuality/DataQualityTools/src/DQTGlobalWZFinderTool.cxx @@ -515,7 +515,7 @@ StatusCode DQTGlobalWZFinderTool::fillHistograms() ATH_MSG_DEBUG("Muon accept: " << m_muonSelectionTool->accept(**muonItr)); ATH_MSG_DEBUG("Muon pt: " << (*muonItr)->pt() << " " << m_muonPtCut*GeV); - ATH_MSG_DEBUG("Muon iso: " << m_isolationSelectionTool->accept(**muonItr)); + ATH_MSG_DEBUG("Muon iso: " << static_cast<bool> (m_isolationSelectionTool->accept(**muonItr))); ATH_MSG_DEBUG("Muon d0sig: " << d0sig); ATH_MSG_DEBUG("Muon Good vtx: " << pVtx); if (pVtx) diff --git a/Event/EventContainers/EventContainers/IdentifiableContainerMT.h b/Event/EventContainers/EventContainers/IdentifiableContainerMT.h index 4417de46067ef14f0268a0656107bbe9fa45b935..9457b295e7cc8202eb2c1010f01bac399fcaed19 100644 --- a/Event/EventContainers/EventContainers/IdentifiableContainerMT.h +++ b/Event/EventContainers/EventContainers/IdentifiableContainerMT.h @@ -106,17 +106,6 @@ public: /// iterator constructor const_iterator() : m_sptr(), m_current(nullptr), m_idContainer(nullptr), m_end(false) { } - /// assignment operator - const_iterator& operator = ( const const_iterator & it ) { - if(this == &it) return *this;//Safeguard against self assignment - m_hashItr = it.m_hashItr; - m_sptr = it.m_sptr; - m_current = it.m_current; - m_idContainer = it.m_idContainer; - m_end = it.m_end; - return *this; - } - /// increment operator const_iterator& operator ++ () { if(m_end) return *this; diff --git a/Event/EventContainers/test/IDC_Realistic_Test.cxx b/Event/EventContainers/test/IDC_Realistic_Test.cxx index e6546afe0e92b784cddc474512727cd3aa98f059..a8da38a99473818b77dd52218c1db49f66148989 100644 --- a/Event/EventContainers/test/IDC_Realistic_Test.cxx +++ b/Event/EventContainers/test/IDC_Realistic_Test.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ #include "EventContainers/IdentifiableContainerMT.h" #include <vector> @@ -208,6 +208,8 @@ public: PseudoView(int s, int r, EventContainers::IdentifiableCache<MyCollection>* inIDC, int i) : IDC(inIDC), RoIStart(s), RoIEnd(r), threads(i), c() {} + PseudoView (const PseudoView&) = default; + PseudoView& operator= (const PseudoView&) = default; virtual ~PseudoView() {} }; diff --git a/ForwardDetectors/ZDC/ZDC_SimEvent/CMakeLists.txt b/ForwardDetectors/ZDC/ZDC_SimEvent/CMakeLists.txt index e8df045aaf23bcc486d72049e17c3c3b4ce6fdd9..22ca9cf131da2af3ae1e6c2bfe9f34c65e8ee5ec 100644 --- a/ForwardDetectors/ZDC/ZDC_SimEvent/CMakeLists.txt +++ b/ForwardDetectors/ZDC/ZDC_SimEvent/CMakeLists.txt @@ -7,8 +7,7 @@ atlas_subdir( ZDC_SimEvent ) # Declare the package's dependencies: atlas_depends_on_subdirs( PUBLIC - Control/CLIDSvc - Control/SGTools + Control/AthenaKernel Simulation/HitManagement ) # External dependencies: @@ -19,12 +18,12 @@ atlas_add_library( ZDC_SimEvent src/*.cxx PUBLIC_HEADERS ZDC_SimEvent PRIVATE_INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES SGTools HitManagement + LINK_LIBRARIES AthenaKernel HitManagement PRIVATE_LINK_LIBRARIES ${ROOT_LIBRARIES} ) atlas_add_dictionary( ZDC_SimEventDict ZDC_SimEvent/ZDC_SimEventDict.h ZDC_SimEvent/selection.xml INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} SGTools HitManagement ZDC_SimEvent ) + LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaKernel HitManagement ZDC_SimEvent ) diff --git a/ForwardDetectors/ZDC/ZDC_SimEvent/ZDC_SimEvent/ZDC_SimPixelHit_Collection.h b/ForwardDetectors/ZDC/ZDC_SimEvent/ZDC_SimEvent/ZDC_SimPixelHit_Collection.h index b38d663fa5268f8530633f49d2d2f9497d3b056f..188e65189f69e793ca632c427a6b69862fee87b5 100644 --- a/ForwardDetectors/ZDC/ZDC_SimEvent/ZDC_SimEvent/ZDC_SimPixelHit_Collection.h +++ b/ForwardDetectors/ZDC/ZDC_SimEvent/ZDC_SimEvent/ZDC_SimPixelHit_Collection.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ #ifndef ZDC_SIMPIXELHIT_COLLECTION @@ -7,11 +7,7 @@ #include "ZDC_SimPixelHit.h" #include "HitManagement/AtlasHitsVector.h" - -#ifndef __CINT__ - #include "CLIDSvc/CLASS_DEF.h" -#endif - +#include "AthenaKernel/CLASS_DEF.h" #include <string> typedef AtlasHitsVector<ZDC_SimPixelHit> ZDC_SimPixelHit_Collection1; diff --git a/ForwardDetectors/ZDC/ZDC_SimEvent/ZDC_SimEvent/ZDC_SimStripHit_Collection.h b/ForwardDetectors/ZDC/ZDC_SimEvent/ZDC_SimEvent/ZDC_SimStripHit_Collection.h index 59eb1cd50c5c38cdc58284e03d24ca6dc511a72d..01f3a1c632662efff5f71ce270232fa97c009609 100644 --- a/ForwardDetectors/ZDC/ZDC_SimEvent/ZDC_SimEvent/ZDC_SimStripHit_Collection.h +++ b/ForwardDetectors/ZDC/ZDC_SimEvent/ZDC_SimEvent/ZDC_SimStripHit_Collection.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ #ifndef ZDC_SIMSTRIPHIT_COLLECTION @@ -7,11 +7,7 @@ #include "ZDC_SimStripHit.h" #include "HitManagement/AtlasHitsVector.h" - -#ifndef __CINT__ - #include "CLIDSvc/CLASS_DEF.h" -#endif - +#include "AthenaKernel/CLASS_DEF.h" #include <string> typedef AtlasHitsVector<ZDC_SimStripHit> ZDC_SimStripHit_Collection1; diff --git a/HLT/Event/ByteStreamEmonSvc/share/EMONHelloWorldOptions.py b/HLT/Event/ByteStreamEmonSvc/share/EMONHelloWorldOptions.py index 47565701eed43ae1f361fcbc1d180fff6e65b147..f7641bdb4b9714609b5d5499072bec1acff5c6bb 100644 --- a/HLT/Event/ByteStreamEmonSvc/share/EMONHelloWorldOptions.py +++ b/HLT/Event/ByteStreamEmonSvc/share/EMONHelloWorldOptions.py @@ -138,8 +138,9 @@ if False: # Private Application Configuration options, replace with # your configuration. #-------------------------------------------------------------- -from TrigExMTHelloWorld.TrigExMTHelloWorldConf import MTHelloWorld -HelloWorld = MTHelloWorld("HelloWorld") +from AthExHelloWorld.AthExHelloWorldConf import HelloAlg + +HelloWorld = HelloAlg("HelloWorld") from AthenaCommon.AlgSequence import AlgSequence topSequence = AlgSequence() diff --git a/HLT/Trigger/TrigControl/TrigExamples/TrigExMTHelloWorld/CMakeLists.txt b/HLT/Trigger/TrigControl/TrigExamples/TrigExMTHelloWorld/CMakeLists.txt deleted file mode 100644 index df8cabf10abdfc9fe8510d7e01b8684dea156c57..0000000000000000000000000000000000000000 --- a/HLT/Trigger/TrigControl/TrigExamples/TrigExMTHelloWorld/CMakeLists.txt +++ /dev/null @@ -1,23 +0,0 @@ -################################################################################ -# Package: TrigExMTHelloWorld -################################################################################ - -# Declare the package name: -atlas_subdir( TrigExMTHelloWorld ) - -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - Control/AthenaBaseComps - PRIVATE - GaudiKernel ) - -# Component(s) in the package: -atlas_add_component( TrigExMTHelloWorld - src/*.cxx - src/components/*.cxx - LINK_LIBRARIES AthenaBaseComps GaudiKernel ) - -# Install files from the package: -atlas_install_headers( TrigExMTHelloWorld ) -atlas_install_joboptions( share/*.py ) - diff --git a/HLT/Trigger/TrigControl/TrigExamples/TrigExMTHelloWorld/TrigExMTHelloWorld/MTHelloWorld.h b/HLT/Trigger/TrigControl/TrigExamples/TrigExMTHelloWorld/TrigExMTHelloWorld/MTHelloWorld.h deleted file mode 100755 index be909d1eeda5077a398f44aa622248c68c140542..0000000000000000000000000000000000000000 --- a/HLT/Trigger/TrigControl/TrigExamples/TrigExMTHelloWorld/TrigExMTHelloWorld/MTHelloWorld.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -#include "AthenaBaseComps/AthAlgorithm.h" - -///////////////////////////////////////////////////////////////////////////// - -class MTHelloWorld : public AthAlgorithm { -public: - MTHelloWorld (const std::string& name, ISvcLocator* pSvcLocator); - virtual StatusCode initialize(); - virtual StatusCode execute(); - virtual StatusCode finalize(); - virtual StatusCode start(); - virtual StatusCode stop(); - -private: - IntegerProperty m_myInt; - BooleanProperty m_myBool; - DoubleProperty m_myDouble; - StringArrayProperty m_myStringVec; -}; diff --git a/HLT/Trigger/TrigControl/TrigExamples/TrigExMTHelloWorld/share/MTHelloWorldOptions.py b/HLT/Trigger/TrigControl/TrigExamples/TrigExMTHelloWorld/share/MTHelloWorldOptions.py deleted file mode 100755 index efd9114addf48e4b89b9c179e0b2f00035e58614..0000000000000000000000000000000000000000 --- a/HLT/Trigger/TrigControl/TrigExamples/TrigExMTHelloWorld/share/MTHelloWorldOptions.py +++ /dev/null @@ -1,40 +0,0 @@ -#************************************************************** -# -# MTHelloWorld example -# -#============================================================== -from AthenaCommon.AppMgr import ServiceMgr as svcMgr -from AthenaCommon.Constants import * - -#-------------------------------------------------------------- -# Private Application Configuration options -#-------------------------------------------------------------- -from TrigExMTHelloWorld.TrigExMTHelloWorldConf import MTHelloWorld -HelloWorld = MTHelloWorld("HelloWorld") - -from AthenaCommon.AlgSequence import AlgSequence -topSequence = AlgSequence() -topSequence += HelloWorld - -#-------------------------------------------------------------- -# Algorithms Private Options -#-------------------------------------------------------------- - -# For the genuine HelloWorld algorithm -HelloWorld.MyInt = 42 -HelloWorld.MyBool = TRUE -HelloWorld.MyDouble = 3.14159 -HelloWorld.MyStringVec = [ "Welcome", "to", "Athena", "Framework", "Tutorial" ] - -# For a special HelloWorld algorithm -#HelloWorld__1 = Algorithm( "HelloWorld__1" ) -#HelloWorld__1.MyInt = 21 -#HelloWorld__1.MyBool = FALSE -#HelloWorld__1.MyDouble = 6.28 -#HelloWorld__1.MyStringVec = [ "Welcome", "to", "Thread", "1" ] - -#============================================================== -# -# End of MTHelloWorld example -# -#************************************************************** diff --git a/HLT/Trigger/TrigControl/TrigExamples/TrigExMTHelloWorld/src/MTHelloWorld.cxx b/HLT/Trigger/TrigControl/TrigExamples/TrigExMTHelloWorld/src/MTHelloWorld.cxx deleted file mode 100755 index a49b62308dcaf27930ff25f2cb5449ba05353eae..0000000000000000000000000000000000000000 --- a/HLT/Trigger/TrigControl/TrigExamples/TrigExMTHelloWorld/src/MTHelloWorld.cxx +++ /dev/null @@ -1,80 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -#include "TrigExMTHelloWorld/MTHelloWorld.h" - -MTHelloWorld::MTHelloWorld(const std::string& name, ISvcLocator* pSvcLocator) : - AthAlgorithm(name, pSvcLocator), - m_myInt(0), m_myBool(0), m_myDouble(0) -{ - - // Part 2: Declare the properties - declareProperty("MyInt", m_myInt); - declareProperty("MyBool", m_myBool); - declareProperty("MyDouble", m_myDouble); - - declareProperty("MyStringVec",m_myStringVec); - -} - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - -StatusCode MTHelloWorld::initialize() -{ - ATH_MSG_INFO("initialize()"); - - - SmartIF<IService> tmp_msgSvc(msgSvc()); - if(tmp_msgSvc.isValid()) { - ATH_MSG_INFO(" Algorithm = " << name() << " is connected to Message Service = " << tmp_msgSvc->name()); - } - - // Part 2: Print out the property values - ATH_MSG_INFO(" MyInt = " << m_myInt); - ATH_MSG_INFO(" MyBool = " << m_myBool); - ATH_MSG_INFO(" MyDouble = " << m_myDouble); - - for (unsigned int i=0; i<m_myStringVec.value().size(); i++) { - ATH_MSG_INFO(" MyStringVec[" << i << "] = " << (m_myStringVec.value())[i]); - } - - return StatusCode::SUCCESS; -} - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - -StatusCode MTHelloWorld::execute() -{ - - ATH_MSG_INFO("execute()"); - - // Part 1: Print out the different levels of messages - ATH_MSG_DEBUG( "A DEBUG message"); - ATH_MSG_INFO( "An INFO message"); - ATH_MSG_WARNING( "A WARNING message"); - ATH_MSG_ERROR( "An ERROR message"); - ATH_MSG_FATAL( "A FATAL error message"); - - return StatusCode::SUCCESS; -} - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - -StatusCode MTHelloWorld::finalize() -{ - ATH_MSG_INFO( "finalize()"); - return StatusCode::SUCCESS; -} - -StatusCode MTHelloWorld::start() -{ - ATH_MSG_INFO( "start()"); - return StatusCode::SUCCESS; -} - -StatusCode MTHelloWorld::stop() -{ - ATH_MSG_INFO( "stop()"); - return StatusCode::SUCCESS; -} diff --git a/HLT/Trigger/TrigControl/TrigExamples/TrigExMTHelloWorld/src/components/MTHelloWorld_entries.cxx b/HLT/Trigger/TrigControl/TrigExamples/TrigExMTHelloWorld/src/components/MTHelloWorld_entries.cxx deleted file mode 100644 index 9def105eb61f4422c7a1621ee7f98230f39d1e09..0000000000000000000000000000000000000000 --- a/HLT/Trigger/TrigControl/TrigExamples/TrigExMTHelloWorld/src/components/MTHelloWorld_entries.cxx +++ /dev/null @@ -1,4 +0,0 @@ -#include "TrigExMTHelloWorld/MTHelloWorld.h" - -DECLARE_COMPONENT( MTHelloWorld ) - diff --git a/HLT/Trigger/TrigControl/TrigExamples/TrigExMTHelloWorldLvl1/CMakeLists.txt b/HLT/Trigger/TrigControl/TrigExamples/TrigExMTHelloWorldLvl1/CMakeLists.txt deleted file mode 100644 index 12f6e02ca7970f2003c2768217dcb3c977999c55..0000000000000000000000000000000000000000 --- a/HLT/Trigger/TrigControl/TrigExamples/TrigExMTHelloWorldLvl1/CMakeLists.txt +++ /dev/null @@ -1,27 +0,0 @@ -################################################################################ -# Package: TrigExMTHelloWorldLvl1 -################################################################################ - -# Declare the package name: -atlas_subdir( TrigExMTHelloWorldLvl1 ) - -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - Control/AthenaBaseComps - PRIVATE - Control/StoreGate - Event/ByteStreamCnvSvcBase - Event/ByteStreamData - GaudiKernel - Trigger/TrigT1/TrigT1Result ) - -# Component(s) in the package: -atlas_add_component( TrigExMTHelloWorldLvl1 - src/*.cxx - src/components/*.cxx - LINK_LIBRARIES AthenaBaseComps StoreGateLib SGtests ByteStreamCnvSvcBaseLib ByteStreamData ByteStreamData_test GaudiKernel TrigT1Result ) - -# Install files from the package: -atlas_install_headers( TrigExMTHelloWorldLvl1 ) -atlas_install_joboptions( share/*.py ) - diff --git a/HLT/Trigger/TrigControl/TrigExamples/TrigExMTHelloWorldLvl1/TrigExMTHelloWorldLvl1/MTHelloWorldLvl1.h b/HLT/Trigger/TrigControl/TrigExamples/TrigExMTHelloWorldLvl1/TrigExMTHelloWorldLvl1/MTHelloWorldLvl1.h deleted file mode 100755 index 6759f9eaf0b33a344a061792637371172815c06e..0000000000000000000000000000000000000000 --- a/HLT/Trigger/TrigControl/TrigExamples/TrigExMTHelloWorldLvl1/TrigExMTHelloWorldLvl1/MTHelloWorldLvl1.h +++ /dev/null @@ -1,27 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "AthenaBaseComps/AthAlgorithm.h" -#include <stdint.h> -#include <vector> -#include <string> - -///////////////////////////////////////////////////////////////////////////// - -class IROBDataProviderSvc; - -class MTHelloWorldLvl1:public AthAlgorithm { -public: - MTHelloWorldLvl1(const std::string& name, ISvcLocator* pSvcLocator); - StatusCode initialize(); - StatusCode execute(); - StatusCode finalize(); - -private: - IROBDataProviderSvc* m_pIROBDataProviderSvc; - BooleanProperty m_retrieveLvl1; - BooleanProperty m_retrieveROBs; - IntegerArrayProperty m_listRobIds; - std::vector<uint32_t> m_robIds; -}; diff --git a/HLT/Trigger/TrigControl/TrigExamples/TrigExMTHelloWorldLvl1/doc/README b/HLT/Trigger/TrigControl/TrigExamples/TrigExMTHelloWorldLvl1/doc/README deleted file mode 100755 index 6698a98fa49ab4027a9ae5b1c27cf8c22863e633..0000000000000000000000000000000000000000 --- a/HLT/Trigger/TrigControl/TrigExamples/TrigExMTHelloWorldLvl1/doc/README +++ /dev/null @@ -1,31 +0,0 @@ -To run the example: -------------------- - -run the application with - - ./athenaMT --file <ByteStreamFile> [jobOptions-file] - -The ByteStreamFile can be in gzip compressed format (ending .gz) or -in uncompressed format. - - ./athenaMT --help - -provides a help with all possible options. - - -Alternative way to run the example (= use the default settings) ------------------------------------ - -1) make in your run directory a soft link to jobOptions.txt - - ln -s MTHelloWorldLvl1Options.txt jobOptions.txt - -and - -2) make a soft link to the gzip compressed ByteStream data file - - ln -s <ByteStream-data-file>.gz Raw.re.gz - -3) run application with - - ./athenaMT diff --git a/HLT/Trigger/TrigControl/TrigExamples/TrigExMTHelloWorldLvl1/share/MTHelloWorldLvl1Options.py b/HLT/Trigger/TrigControl/TrigExamples/TrigExMTHelloWorldLvl1/share/MTHelloWorldLvl1Options.py deleted file mode 100755 index 59c925c733f5426136cf875ce5333595d29f3784..0000000000000000000000000000000000000000 --- a/HLT/Trigger/TrigControl/TrigExamples/TrigExMTHelloWorldLvl1/share/MTHelloWorldLvl1Options.py +++ /dev/null @@ -1,88 +0,0 @@ -#************************************************************** -# -# MTHelloWorldLvl1 example -# -#============================================================== -from AthenaCommon.AppMgr import ServiceMgr as svcMgr -from AthenaCommon.Constants import * -from AthenaCommon import CfgMgr - -#-------------------------------------------------------------- -# disable sending of Level 2 result -#-------------------------------------------------------------- -if not hasattr( svcMgr, "ByteStreamAddressProviderSvc" ): - from ByteStreamCnvSvcBase.ByteStreamCnvSvcBaseConf import ByteStreamAddressProviderSvc - svcMgr += ByteStreamAddressProviderSvc() - -svcMgr.ByteStreamAddressProviderSvc.OutputLevel = OUTPUTLEVEL -svcMgr.ByteStreamAddressProviderSvc.TypeNames += [ - "ROIB::RoIBResult/RoIBResult" - ] - -#-------------------------------------------------------------- -# Private Application Configuration options -#-------------------------------------------------------------- -HelloWorld = CfgMgr.MTHelloWorldLvl1("HelloWorld") - -from AthenaCommon.AlgSequence import AlgSequence -topSequence = AlgSequence() -topSequence += HelloWorld - -#-------------------------------------------------------------- -# need to run LVL1 configuration for LVL1 conversion in HLTSSW -#-------------------------------------------------------------- -svcMgr += CfgMgr.LVL1CTP__L1Config("L1Config") -svcMgr += CfgMgr.LVL1CTP__CTPHardware("CTPHardware") -L1Config = svcMgr.L1Config -CTPHardware = svcMgr.CTPHardware - -if not ('TrigT1ConfigVersion' in dir()): - TrigT1ConfigVersion="CSC-02" - if 'DetDescrVersion' in dir(): - print DetDescrVersion - # what follows is a poor-man's database (hopefully soon to be replaced by a real one) - if DetDescrVersion.startswith("Rome"): - TrigT1ConfigVersion="DC2" - elif DetDescrVersion.startswith("DC2"): - TrigT1ConfigVersion="DC2" - elif DetDescrVersion.startswith("ATLAS-DC3"): - TrigT1ConfigVersion="DC2" - -L1Config.triggerMenuFileLocation = "LVL1triggermenu"+TrigT1ConfigVersion+".xml" -L1Config.thresholdListFileLocation = "LVL1triggerthresholds"+TrigT1ConfigVersion+".xml" -L1Config.muctpiConfigLocation = "trigger.muctpi.xml" -CTPHardware.hardwareXMLFile = "hardware.xml" -CTPHardware.printoutLUT = "no" - -#-------------------------------------------------------------- -# Algorithms Private Options -#-------------------------------------------------------------- -# -#--- retrieve the Level-1 result -# -HelloWorld.RetrieveLvl1 = TRUE -# -#--- retrieve the ROBs over the network -# -HelloWorld.RetrieveROBs = TRUE -#--- empty list of ROBs -HelloWorld.RobId = [ ] - -#--- Give a list of ROBs contained in your input file -# ------------------ -#HelloWorld.RobId = [ -# 0x42002a, -# 0x42002b, -# 0x42002e, -# 0x42002f, -# 0x420060, -# 0x420064 -# ] - -ROBDataProviderSvc.OutputLevel = OUTPUTLEVEL - -#============================================================== -# -# End of MTHelloWorldLvl1 example -# -#************************************************************** diff --git a/HLT/Trigger/TrigControl/TrigExamples/TrigExMTHelloWorldLvl1/src/MTHelloWorldLvl1.cxx b/HLT/Trigger/TrigControl/TrigExamples/TrigExMTHelloWorldLvl1/src/MTHelloWorldLvl1.cxx deleted file mode 100755 index 825a33d470302fd44fcf0a68c76273d005e7329a..0000000000000000000000000000000000000000 --- a/HLT/Trigger/TrigControl/TrigExamples/TrigExMTHelloWorldLvl1/src/MTHelloWorldLvl1.cxx +++ /dev/null @@ -1,129 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "TrigExMTHelloWorldLvl1/MTHelloWorldLvl1.h" -#include "TrigT1Result/RoIBResult.h" -#include "StoreGate/DataHandle.h" -#include "ByteStreamCnvSvcBase/IROBDataProviderSvc.h" -#include "ByteStreamData/RawEvent.h" - -// static const AlgFactory<MTHelloWorldLvl1> Factory; -// const IAlgFactory& MTHelloWorldLvl1Factory = Factory; - -///////////////////////////////////////////////////////////////////////////// - -MTHelloWorldLvl1::MTHelloWorldLvl1(const std::string& name, ISvcLocator* pSvcLocator) : - AthAlgorithm(name, pSvcLocator), - m_pIROBDataProviderSvc(0), - m_retrieveLvl1(false), - m_retrieveROBs(false) -{ - // Declare the properties - declareProperty("RetrieveLvl1", m_retrieveLvl1); - declareProperty("RetrieveROBs", m_retrieveROBs); - declareProperty("RobId", m_listRobIds); -} - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - -StatusCode MTHelloWorldLvl1::initialize() { - - // Part 1: Get the messaging service, print where you are - ATH_MSG_INFO("initialize()"); - - SmartIF<IService> tmp_msgSvc(msgSvc()); - if(tmp_msgSvc.isValid()) { - ATH_MSG_INFO(" Algorithm = " << name() << " is connected to Message Service = " << tmp_msgSvc->name()); - } - - // Print out the property values - ATH_MSG_INFO(" RetrieveLvl1 = " << m_retrieveLvl1); - ATH_MSG_INFO(" RetrieveROBs = " << m_retrieveROBs); - if (m_retrieveROBs) { - ATH_MSG_INFO(" Number of ROBs to access = " << m_listRobIds.value().size()); - ATH_MSG_INFO(" List of ROBs: "); - std::vector<int>::const_iterator it = m_listRobIds.value().begin(); - while (it != m_listRobIds.value().end()) - { - m_robIds.push_back(*it); - ATH_MSG_DEBUG(" 0x" << MSG::hex << *it); - ++it; - } - } - - - // Part 4: Locate the ROBDataProviderSvc - StatusCode sc = service("ROBDataProviderSvc", m_pIROBDataProviderSvc); - if (!sc.isSuccess()) { - ATH_MSG_ERROR("Could not find ROBDataProviderSvc"); - return sc; - } else { - IService* svc = dynamic_cast<IService*>(m_pIROBDataProviderSvc); - if(svc != 0 ) { - ATH_MSG_INFO(" Algorithm = " << name() << " is connected to ROBDataProviderSvc Service = " - << svc->name()); - } - } - - return StatusCode::SUCCESS; -} - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - -StatusCode MTHelloWorldLvl1::execute() { - - // Get the messaging service, print where you are - MsgStream log(msgSvc(), name()); - ATH_MSG_INFO("execute()"); - - ATH_MSG_DEBUG(" StoreGate structure: Begin execute " << name() << "\n" - << evtStore()->dump()); - - // Get the Lvl1 Id - const DataHandle<ROIB::RoIBResult> dobj; - if (m_retrieveLvl1) { - StatusCode sc = evtStore()->retrieve(dobj,"RoIBResult") ; - if ( sc.isFailure() ) { - ATH_MSG_ERROR("Could not find Lvl1Result"); - return sc; - } else { - ATH_MSG_INFO(" ---> Lvl1Result ID " << dobj->cTPResult().header().L1ID()); - } - } - - // Get the ROBs - if (m_retrieveROBs) { - // preload ROBs in memory - m_pIROBDataProviderSvc->addROBData(m_robIds); - - // retrieve ROBs - std::vector<const OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment*> robFragments; - m_pIROBDataProviderSvc->getROBData(m_robIds, robFragments) ; - ATH_MSG_INFO(" ---> number of ROBs retrieved " << robFragments.size()); - std::vector<const OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment*>::const_iterator it = robFragments.begin(); - ATH_MSG_INFO(" ---> List of ROBs found: "); - while (it != robFragments.end()) - { - ATH_MSG_INFO(" ---> ROB ID = 0x" << MSG::hex << (*it)->rod_source_id() << MSG::dec - << " Level-1 ID = " << (*it)->rod_lvl1_id()); - ++it; - } - } - - ATH_MSG_DEBUG(" StoreGate structure: End execute " << name() << "\n" - << evtStore()->dump()); - - return StatusCode::SUCCESS; -} - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - -StatusCode MTHelloWorldLvl1::finalize() { - - // Part 1: Get the messaging service, print where you are - MsgStream log(msgSvc(), name()); - ATH_MSG_INFO("finalize()"); - - return StatusCode::SUCCESS; -} diff --git a/HLT/Trigger/TrigControl/TrigExamples/TrigExMTHelloWorldLvl1/src/components/MTHelloWorldLvl1_entries.cxx b/HLT/Trigger/TrigControl/TrigExamples/TrigExMTHelloWorldLvl1/src/components/MTHelloWorldLvl1_entries.cxx deleted file mode 100644 index b45bcb5dc6811586d69f7661e06c26859e09b594..0000000000000000000000000000000000000000 --- a/HLT/Trigger/TrigControl/TrigExamples/TrigExMTHelloWorldLvl1/src/components/MTHelloWorldLvl1_entries.cxx +++ /dev/null @@ -1,4 +0,0 @@ -#include "TrigExMTHelloWorldLvl1/MTHelloWorldLvl1.h" - -DECLARE_COMPONENT( MTHelloWorldLvl1 ) - diff --git a/InnerDetector/InDetDetDescr/BLM_GeoModel/BLM_GeoModel/BLM_GeometryManager.h b/InnerDetector/InDetDetDescr/BLM_GeoModel/BLM_GeoModel/BLM_GeometryManager.h index f90f8a6cc2fb0c63834d3553e1a3fb4b8da86f0a..54150a66a1b6ee5d0b02f15aa1b03b417d0456da 100755 --- a/InnerDetector/InDetDetDescr/BLM_GeoModel/BLM_GeoModel/BLM_GeometryManager.h +++ b/InnerDetector/InDetDetDescr/BLM_GeoModel/BLM_GeoModel/BLM_GeometryManager.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ /////////////////////////////////////////////////////////////////// @@ -30,6 +30,6 @@ class BLM_GeometryManager BLM_ModuleParameters m_moduli[12]; unsigned int m_on; }; -#include "CLIDSvc/CLASS_DEF.h" +#include "AthenaKernel/CLASS_DEF.h" CLASS_DEF(BLM_GeometryManager, 53024180, 1) #endif diff --git a/InnerDetector/InDetDetDescr/BLM_GeoModel/CMakeLists.txt b/InnerDetector/InDetDetDescr/BLM_GeoModel/CMakeLists.txt index 1c947a898eafadb64b5475774110afc1d3308572..68d046510be1a3cb62a3548fa988ab79e2fe66ac 100644 --- a/InnerDetector/InDetDetDescr/BLM_GeoModel/CMakeLists.txt +++ b/InnerDetector/InDetDetDescr/BLM_GeoModel/CMakeLists.txt @@ -9,8 +9,7 @@ atlas_subdir( BLM_GeoModel ) atlas_depends_on_subdirs( PUBLIC Control/AthenaBaseComps Control/AthenaKernel - Control/CLIDSvc - Control/SGTools + Control/AthenaKernel DetectorDescription/GeoModel/GeoModelInterfaces DetectorDescription/GeoModel/GeoModelKernel GaudiKernel @@ -27,7 +26,7 @@ atlas_add_component( BLM_GeoModel src/*.cxx src/components/*.cxx INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} - LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} AthenaBaseComps AthenaKernel SGTools GeoModelKernel GaudiKernel GeoModelUtilities ) + LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} AthenaBaseComps AthenaKernel AthenaKernel GeoModelKernel GaudiKernel GeoModelUtilities ) # Install files from the package: atlas_install_headers( BLM_GeoModel ) diff --git a/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/InDetVKalVxInJetTool/InDetTrkInJetType.h b/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/InDetVKalVxInJetTool/InDetTrkInJetType.h index 85cf7b30328ee21fa27d89e69491786703fbc302..3f947855d42c3b2c49b761dcbb504b8026c9aca7 100644 --- a/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/InDetVKalVxInJetTool/InDetTrkInJetType.h +++ b/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/InDetVKalVxInJetTool/InDetTrkInJetType.h @@ -79,11 +79,14 @@ namespace InDet { private: TMVA::Reader* m_tmvaReader; - double m_trkMinPtCut; - float m_d0_limLow; - float m_d0_limUpp; - float m_Z0_limLow; - float m_Z0_limUpp; + int m_trkSctHitsCut{}; + int m_trkPixelHitsCut{}; + float m_trkChi2Cut{}; + float m_trkMinPtCut{}; + float m_d0_limLow{}; + float m_d0_limUpp{}; + float m_Z0_limLow{}; + float m_Z0_limUpp{}; std::string m_calibFileName; ToolHandle < Trk::IVertexFitter > m_fitterSvc; Trk::TrkVKalVrtFitter* m_fitSvc{}; diff --git a/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/InDetVKalVxInJetTool/InDetVKalVxInJetTool.h b/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/InDetVKalVxInJetTool/InDetVKalVxInJetTool.h index cfb8d0c68ede6af5645d378815a310a5d245551b..e6da7b7d5b417d5653faf99813c4d0a46da699f4 100755 --- a/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/InDetVKalVxInJetTool/InDetVKalVxInJetTool.h +++ b/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/InDetVKalVxInJetTool/InDetVKalVxInJetTool.h @@ -48,6 +48,7 @@ // #include "Particle/TrackParticle.h" #include "xAODTracking/TrackParticleContainer.h" +#include "xAODTruth/TruthEventContainer.h" // // #include "InDetRecToolInterfaces/ISecVertexInJetFinder.h" @@ -120,17 +121,6 @@ namespace InDet { const TLorentzVector & jetMomentum, const std::vector<const xAOD::IParticle*> & inputTracks) const; -//--------------------------------------------- For package debugging - public: - void setVBTrk(std::vector<const xAOD::TrackParticle*> * BTrk) const { m_dbgVBTrk=BTrk; }; - private: - int isBTrk(const xAOD::TrackParticle* prt) const - { if(!m_dbgVBTrk) return 0; - if(std::find((*m_dbgVBTrk).begin(),(*m_dbgVBTrk).end(), prt) != (*m_dbgVBTrk).end()) return 1; - return 0; - } - int isBTrk(const Rec::TrackParticle*) const { return 0; } - mutable std::vector<const xAOD::TrackParticle*> *m_dbgVBTrk=nullptr; //------------------------------------------------------------------------------------------------------------------ // Private data and functions // @@ -212,6 +202,8 @@ namespace InDet { double m_zTrkErrorCut{}; double m_cutHFClass{}; double m_antiGarbageCut{}; + double m_antiFragmentCut{}; + double m_Vrt2TrMassLimit{}; bool m_fillHist{}; @@ -261,6 +253,10 @@ namespace InDet { //------------------------------------------- //For ntuples (only for development/tuning!) + int notFromBC(int PDGID) const; + const xAOD::TruthParticle * getPreviousParent(const xAOD::TruthParticle * child, int & ParentPDG) const; + int getIdHF(const Rec::TrackParticle* TP ) const; + int getIdHF(const xAOD::TrackParticle* TP ) const; int getG4Inter( const Rec::TrackParticle* TP ) const; int getG4Inter( const xAOD::TrackParticle* TP ) const; int getMCPileup(const Rec::TrackParticle* TP ) const; @@ -269,6 +265,7 @@ namespace InDet { struct DevTuple { static const int maxNTrk=100; + static const int maxNVrt=100; int nTrkInJet; float ptjet; float etajet; @@ -288,19 +285,31 @@ namespace InDet { float Sig3D[maxNTrk]; int chg[maxNTrk]; int nVrtT[maxNTrk]; - int nVrt; - float VrtDist2D[maxNTrk]; - float VrtSig3D[maxNTrk]; - float VrtSig2D[maxNTrk]; - float mass[maxNTrk]; - float Chi2[maxNTrk]; - int itrk[maxNTrk]; - int jtrk[maxNTrk]; - int badVrt[maxNTrk]; - int ibl[maxNTrk]; - int bl[maxNTrk]; + float TotM; + int nVrt; + float VrtDist2D[maxNVrt]; + float VrtSig3D[maxNVrt]; + float VrtSig2D[maxNVrt]; + float VrtDR[maxNVrt]; + float mass[maxNVrt]; + float Chi2[maxNVrt]; + int itrk[maxNVrt]; + int jtrk[maxNVrt]; + int badVrt[maxNVrt]; + int ibl[maxNVrt]; + int bl[maxNVrt]; int NTHF; - int itHF[maxNTrk]; + int itHF[maxNVrt]; + //--- + int nNVrt; + float NVrtDist2D[maxNVrt]; + int NVrtNT[maxNVrt]; + int NVrtTrkI[maxNVrt]; + float NVrtM[maxNVrt]; + float NVrtChi2[maxNVrt]; + float NVrtMaxW[maxNVrt]; + float NVrtAveW[maxNVrt]; + float NVrtDR[maxNVrt]; }; DevTuple* m_curTup; @@ -317,6 +326,7 @@ namespace InDet { double Signif3DProj=0.; double Signif2D=0.; double Chi2=0.; + double dRSVPV=-1.; }; @@ -326,7 +336,7 @@ namespace InDet { float m_chiScale[11]{}; VKalVxInJetTemp* m_WorkArray{}; struct WrkVrt - { bool Good{}; + { bool Good=true; std::deque<long int> SelTrk; Amg::Vector3D vertex; TLorentzVector vertexMom; @@ -335,9 +345,9 @@ namespace InDet { std::vector<double> Chi2PerTrk; std::vector< std::vector<double> > TrkAtVrt; double Chi2{}; - int nCloseVrt{}; - double dCloseVrt{}; - double ProjectedVrt{}; + int nCloseVrt=0; + double dCloseVrt=1000000.; + double ProjectedVrt=0.; int detachedTrack=-1; }; @@ -411,7 +421,9 @@ namespace InDet { double VrtRadiusError(const Amg::Vector3D & SecVrt, const std::vector<double> & VrtErr) const; bool insideMatLayer(float ,float ) const; - void fillVrtNTup( std::vector<Vrt2Tr> & all2TrVrt) const; + void fillVrtNTup( std::vector<Vrt2Tr> & all2TrVrt) const; + void fillNVrtNTup(std::vector<WrkVrt> & VrtSet, std::vector< std::vector<float> > & trkScore, + const xAOD::Vertex & PrimVrt, const TLorentzVector & JetDir)const; TLorentzVector GetBDir( const xAOD::TrackParticle* trk1, const xAOD::TrackParticle* trk2, @@ -482,6 +494,9 @@ namespace InDet { template <class Particle> double mergeAndRefitVertices( std::vector<WrkVrt> *WrkVrtSet, int V1, int V2, WrkVrt & newvrt, std::vector<const Particle*> & AllTrackList) const; + template <class Particle> + void mergeAndRefitOverlapVertices( std::vector<WrkVrt> *WrkVrtSet, int V1, int V2, + std::vector<const Particle*> & AllTrackList) const; template <class Particle> double improveVertexChi2( std::vector<WrkVrt> *WrkVrtSet, int V, std::vector<const Particle*> & AllTracks)const; diff --git a/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/Root/README b/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/Root/README new file mode 100644 index 0000000000000000000000000000000000000000..73266aa7a361a4a6c8b15ee9f63027a099356eaf --- /dev/null +++ b/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/Root/README @@ -0,0 +1,11 @@ +Tool calibration data can be obtained by running the InDetVKalVxInJetTool with the following jobO: + +FillHist = 1 +AntiGarbageCut = 1.0 + +Produce calibation files using different MC samples (ttbar, Zp, dijet,...) +Edit Train.C to provide correct pathes to all this calibration files +Run corrected Train.C using root 6.12 or above. + +Use HF tracks from b-jets +Use fragmentation tracks from L+HF jets diff --git a/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/src/BTagVrtSec.cxx b/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/src/BTagVrtSec.cxx index ecf1ccae1066ee6bad93e1b4659568b50b1b87ad..104fb338a7223343bd1d62803a82f80142df04a5 100755 --- a/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/src/BTagVrtSec.cxx +++ b/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/src/BTagVrtSec.cxx @@ -36,10 +36,20 @@ namespace InDet{ float median(std::vector<float> &Vec){ int N=Vec.size(); if(N==1) return Vec[0]; - if(N>1){ + if(N==2) return (Vec[0]+Vec[1])/2.; + if(N==3) return Vec[1]; + if(N>3){ std::vector<float> tmp(Vec); - std::sort(tmp.begin(),tmp.end()); //can use nth_element instead of completely sorting, it's quicker - return (tmp[(N-1)/2]+tmp[N/2])/2.; //only true if the number of elements is even? + int N05m=(N-1)/2, N05p=N/2; + //std::sort(tmp.begin(),tmp.end()); //can use nth_element instead of completely sorting, it's quicker + if(N05m==N05p){ + std::nth_element(tmp.begin(),tmp.begin()+N05m,tmp.end()); + return tmp[N05m]; + } else { + std::nth_element(tmp.begin(),tmp.begin()+N05m,tmp.end()); + std::nth_element(tmp.begin(),tmp.begin()+N05p,tmp.end()); + return (tmp[N05m]+tmp[N05p])/2.; + } } return 0.; } @@ -508,6 +518,7 @@ namespace InDet{ float R=JetDir.DeltaR(TLorentzVector(FitVertex.x()-PrimVrt.x(),FitVertex.y()-PrimVrt.y(), FitVertex.z()-PrimVrt.z(), 1.e4)); m_hb_deltaRSVPV->Fill( R, m_w_1); + if(m_curTup)m_curTup->TotM=Momentum.M(); } //------------------------------------------------------------------------------------- @@ -713,7 +724,6 @@ namespace InDet{ // std::vector<float> covPV=PrimVrt.covariance(); double SignifR=0.,SignifZ=0.; - int nTrkHF=0; std::vector<int> hitIBL(NTracks,0), hitBL(NTracks,0); std::vector<double> TrackSignif(NTracks),TrkSig3D(NTracks); std::vector< std::vector<float> > trkScore(NTracks); @@ -731,7 +741,6 @@ namespace InDet{ int hL1=0, nLays=0; getPixelLayers(SelectedTracks[i] , hitIBL[i] , hitBL[i], hL1, nLays ); //---- trkScore[i]=m_trackClassificator->trkTypeWgts(SelectedTracks[i], PrimVrt, JetDir); - if( trkScore[i][0]>trkScore[i][1] && trkScore[i][0]>trkScore[i][2] ) nTrkHF++; //Good HF track if(m_fillHist){ m_hb_impactR->Fill( SignifR, m_w_1); m_hb_impactZ->Fill( SignifZ, m_w_1); @@ -743,7 +752,7 @@ namespace InDet{ m_curTup->SigR[i]=SignifR; m_curTup->SigZ[i]=SignifZ; m_curTup->d0[i]=Impact[0]; m_curTup->Z0[i]=Impact[1]; m_curTup->idMC[i]=getG4Inter(SelectedTracks[i]); - if(isBTrk(SelectedTracks[i]))m_curTup->idMC[i]=2; + if(getIdHF(SelectedTracks[i]))m_curTup->idMC[i]=2; if(getMCPileup(SelectedTracks[i]))m_curTup->idMC[i]=3; m_curTup->wgtB[i]=trkScore[i][0]; m_curTup->wgtL[i]=trkScore[i][1]; m_curTup->wgtG[i]=trkScore[i][2]; m_curTup->Sig3D[i]=TrkSig3D[i]; @@ -759,10 +768,8 @@ namespace InDet{ } } } - if (not m_curTup) return; //something very wrong if(m_fillHist){ m_curTup->ptjet=JetDir.Perp(); m_curTup->etajet=fabs(JetDir.Eta()); m_curTup->phijet=JetDir.Phi(); m_curTup->nTrkInJet=std::min(NTracks,DevTuple::maxNTrk); }; - if(nTrkHF==0) return; //====== No at all good HF tracks ListSecondTracks.reserve(2*NTracks); // Reserve memory for single vertex @@ -776,8 +783,13 @@ namespace InDet{ if(trkScore[i][0]==0.)continue; if(trkScore[j][0]==0.)continue; if(!m_multiWithPrimary) { // Not used for multi-vertex with primary one search - if( trkScore[i][0]<m_cutHFClass )continue; //Not classified HF tracks - if( trkScore[j][0]<m_cutHFClass )continue; //Not classified HF tracks + if( std::max(trkScore[i][1],trkScore[j][1]) > m_antiFragmentCut ) continue; // Remove definite fragmentation tracks + bool goodPair=false; + float minWgtB=std::min(trkScore[i][0],trkScore[j][0]); + float maxWgtB=std::max(trkScore[i][0],trkScore[j][0]); + if( minWgtB>m_cutHFClass ) goodPair=true; + if( maxWgtB>0.5 && minWgtB>m_cutHFClass/2. )goodPair=true; + if( !goodPair ) continue; } int BadTracks = 0; //Bad tracks identification TracksForFit.resize(2); @@ -805,12 +817,15 @@ namespace InDet{ Dist2D=tmpVrt.FitVertex.perp(); if(Dist2D > 180. ) continue; // can't be from B decay double mass_PiPi = tmpVrt.Momentum.M(); - if(mass_PiPi > c_vrtBCMassLimit) continue; // can't be from B decay + if(mass_PiPi > m_Vrt2TrMassLimit) continue; // can't be from B decay VrtVrtDist(PrimVrt, tmpVrt.FitVertex, tmpVrt.ErrorMatrix, Signif3D); tmpVrt.Signif3D=Signif3D; VrtVrtDist2D(PrimVrt, tmpVrt.FitVertex, tmpVrt.ErrorMatrix, tmpVrt.Signif2D); //--- TVector3 SVmPV(tmpVrt.FitVertex.x()-PrimVrt.x(),tmpVrt.FitVertex.y()-PrimVrt.y(),tmpVrt.FitVertex.z()-PrimVrt.z()); + tmpVrt.dRSVPV=JetDir.DeltaR(TLorentzVector(SVmPV, 1.)); //DeltaR SV-PV vs jet + if(tmpVrt.dRSVPV > m_coneForTag ) continue; // SV is outside of the jet cone +//--- JetVrtDir = SVmPV.Dot(JetDir.Vect()); double vPos=SVmPV.Dot(tmpVrt.Momentum.Vect())/tmpVrt.Momentum.Rho(); if((!m_multiWithPrimary) &&(!m_getNegativeTail) && (!m_getNegativeTag) && JetVrtDir<0. ) continue; /* secondary vertex behind primary*/ @@ -972,18 +987,27 @@ namespace InDet{ // { if( trkTypeSV[all2TrVrt[iv].i]>0 && trkTypeSV[all2TrVrt[iv].j]>0) all2TrVrt.erase(all2TrVrt.begin()+iv); else iv++; } // */ +//-- Cleaning. Remove small wgtB tracks attached to one vertex only. +// std::vector<int> inVrt(NTracks,0); +// for( auto vv : all2TrVrt){ inVrt[vv.i]++; inVrt[vv.j]++; } +// ////std::map<float,int> trkInOneV; for( int kt=0; kt<NTracks; kt++) if(inVrt[kt]==1) trkInOneV[trkScore[kt][0]]=kt; +// for(int kk=0; kk<NTracks; kk++){ +// if( inVrt[kk]==1 && trkScore[kk][0]<2.5*m_cutHFClass ) { +// int iv=0; while (iv<(int)all2TrVrt.size()){ if( all2TrVrt[iv].i==kk || all2TrVrt[iv].j==kk ) { all2TrVrt.erase(all2TrVrt.begin()+iv); break;} else iv++; } +// } } +//============================================================================ //-- Save results ListSecondTracks.clear(); std::map<float,int> trkHF; - for( auto vv : all2TrVrt){ + for( auto &vv : all2TrVrt){ if( m_multiWithPrimary || m_multiVertex) add_edge(vv.i,vv.j,*m_compatibilityGraph); trkHF[trkScore[vv.i][0]]=vv.i; trkHF[trkScore[vv.j][0]]=vv.j; } for( auto it : trkHF) { ListSecondTracks.push_back(SelectedTracks[it.second]); } //-Debug if( m_fillHist && m_curTup ){ - for( auto it : trkHF) { m_curTup->itHF[m_curTup->NTHF++]=it.second; } - for( auto vv : all2TrVrt){ m_curTup->nVrtT[vv.i]++; m_curTup->nVrtT[vv.j]++; } + for( auto &it : trkHF) { m_curTup->itHF[m_curTup->NTHF++]=it.second; } + for( auto &vv : all2TrVrt){ m_curTup->nVrtT[vv.i]++; m_curTup->nVrtT[vv.j]++; } fillVrtNTup(all2TrVrt); } // diff --git a/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/src/BTagVrtSecMulti.cxx b/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/src/BTagVrtSecMulti.cxx index 0a73eb71e87e7eb1a6e7b96e77c5e3ea70c2ea91..368e41ff99e85bf41f806575c921a8315be57905 100755 --- a/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/src/BTagVrtSecMulti.cxx +++ b/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/src/BTagVrtSecMulti.cxx @@ -56,8 +56,7 @@ const double c_vrtBCMassLimit=5500.; // Mass limit to consider a vertex not com const { - const double probVrtMergeLimit=0.04; - const int useMaterialRejection=1; + const double probVrtMergeLimit=0.01; m_NRefPVTrk=0; int inpNPart=0; @@ -74,7 +73,7 @@ const double c_vrtBCMassLimit=5500.; // Mass limit to consider a vertex not com if(msgLvl(MSG::DEBUG))msg(MSG::DEBUG) << "InDet GetVrtSecMulti() called with NPart=" <<inpNPart<< endmsg; //std::vector<const Rec::TrackParticle*> listJetTracks, tmpListTracks, listSecondTracks, TracksForFit; - std::vector<xAOD::Vertex*> finalVertices; + std::vector<xAOD::Vertex*> finalVertices(0); if( inpNPart < 2 ) { return finalVertices;} // 0,1 track => nothing to do! @@ -205,7 +204,7 @@ const double c_vrtBCMassLimit=5500.; // Mass limit to consider a vertex not com newvrt.Good = true; newvrt.nCloseVrt = 0; newvrt.dCloseVrt = 1000000.; - newvrt.ProjectedVrt=JetProjDist(newvrt.vertex, PrimVrt, JetDir); + newvrt.ProjectedVrt=JetProjDist(newvrt.vertex, PrimVrt, JetDir); //3D SV-PV distance WrkVrtSet->push_back(newvrt); } //================================================================================== @@ -220,45 +219,23 @@ const double c_vrtBCMassLimit=5500.; // Mass limit to consider a vertex not com // std::vector<const xAOD::TrackParticle*> tempTrk(0); // for(auto & iv : (*WrkVrtSet)){ if(iv.Good){for(auto & it : iv.SelTrk)tempTrk.push_back(xAODwrk->listJetTracks.at(it));}} // RemoveDoubleEntries(tempTrk); -//--- Initial cleaning of solutions // -//- Try to merge vertices with 3 and more tracks which have at least 2 common tracks - int NSoluI=(*WrkVrtSet).size(); - for(int iv=0; iv<NSoluI-1; iv++ ){ - if(!(*WrkVrtSet)[iv].Good ) continue; - int nTrk1=(*WrkVrtSet)[iv].SelTrk.size(); - for(int jv=iv+1; jv<NSoluI; jv++){ - if(!(*WrkVrtSet)[jv].Good ) continue; - int nTrk2=(*WrkVrtSet)[jv].SelTrk.size(); - if( nTrk1<3 || nTrk2<3 || nTrk1+nTrk2<7) continue; - int nTCom=nTrkCommon( WrkVrtSet, iv, jv); - if( nTrk1-nTCom==1 || nTrk2-nTCom==1){ - double probV=-1.; - if (xAODwrk)probV=mergeAndRefitVertices( WrkVrtSet, iv, jv, newvrt, xAODwrk->listJetTracks); - else if(RECwork)probV=mergeAndRefitVertices( WrkVrtSet, iv, jv, newvrt, RECwork->listJetTracks); - if(probV<probVrtMergeLimit)continue; - newvrt.Good = true; - newvrt.ProjectedVrt=JetProjDist(newvrt.vertex, PrimVrt, JetDir); - (*WrkVrtSet).push_back(newvrt); - (*WrkVrtSet)[iv].Good=false; - (*WrkVrtSet)[jv].Good=false; - } - } - } +//========= Initial cleaning of solutions //-Remove worst track from vertices with very bad Chi2 - NSoluI=(*WrkVrtSet).size(); - for(int iv=0; iv<NSoluI; iv++){ - if(!(*WrkVrtSet)[iv].Good ) continue; - if( (*WrkVrtSet)[iv].SelTrk.size() == 2 ) continue; - //if( (*WrkVrtSet)[iv].Chi2 > (5.*(*WrkVrtSet)[iv].SelTrk.size()) ){ - if( TMath::Prob( (*WrkVrtSet)[iv].Chi2, 2*(*WrkVrtSet)[iv].SelTrk.size()-3) <1.e-2){ + bool disassembled=false; + int NSoluI=0; + do{ + disassembled=false; + NSoluI=(*WrkVrtSet).size(); + for(int iv=0; iv<NSoluI; iv++){ + if(!(*WrkVrtSet)[iv].Good || (*WrkVrtSet)[iv].SelTrk.size() == 2 ) continue; + if( TMath::Prob( (*WrkVrtSet)[iv].Chi2, 2*(*WrkVrtSet)[iv].SelTrk.size()-3) <1.e-3){ + //printWrkSet(WrkVrtSet,"BigChi2Vertex present"); if (xAODwrk)DisassembleVertex(WrkVrtSet,iv,xAODwrk->listJetTracks); else if(RECwork)DisassembleVertex(WrkVrtSet,iv,RECwork->listJetTracks); - (*WrkVrtSet)[iv].ProjectedVrt=JetProjDist((*WrkVrtSet)[iv].vertex, PrimVrt, JetDir); - int kpp=(*WrkVrtSet).size()-1; - (*WrkVrtSet)[kpp].ProjectedVrt=JetProjDist((*WrkVrtSet)[kpp].vertex, PrimVrt, JetDir); - } - } + disassembled=true; + } } + }while(disassembled); //-Remove vertices fully contained in other vertices while( (*WrkVrtSet).size()>1 ){ int tmpN=(*WrkVrtSet).size(); int iv=0; @@ -272,32 +249,50 @@ const double c_vrtBCMassLimit=5500.; // Mass limit to consider a vertex not com } if(jv!=tmpN) break; // One vertex is erased. Restart check } if(iv==tmpN-1) break; // No vertex deleted } - if(m_fillHist){ int cvgood=0; for(int iv=0; iv<(int)(*WrkVrtSet).size(); iv++) if((*WrkVrtSet)[iv].Good)cvgood++; - m_hb_rawVrtN->Fill( (float)cvgood, m_w_1); } -//- Try to merge all vertices which have at least 2 common track - for(int iv=0; iv<(int)(*WrkVrtSet).size()-1; iv++ ){ - if(!(*WrkVrtSet)[iv].Good ) continue; - for(int jv=iv+1; jv<(int)(*WrkVrtSet).size(); jv++){ - if(!(*WrkVrtSet)[jv].Good ) continue; - if(nTrkCommon( WrkVrtSet, iv, jv)<2) continue; - if( VrtVrtDist((*WrkVrtSet)[iv].vertex,(*WrkVrtSet)[iv].vertexCov, - (*WrkVrtSet)[jv].vertex,(*WrkVrtSet)[jv].vertexCov) < m_vertexMergeCut) { - double probV=0.; - if (xAODwrk)probV=mergeAndRefitVertices( WrkVrtSet, iv, jv, newvrt, xAODwrk->listJetTracks); - else if(RECwork)probV=mergeAndRefitVertices( WrkVrtSet, iv, jv, newvrt, RECwork->listJetTracks); - if(probV>probVrtMergeLimit){ // Good merged vertex found - double tstDst=JetProjDist(newvrt.vertex, PrimVrt, JetDir); - if(tstDst>0.){ // only positive vertex directions are accepted as merging result - newvrt.ProjectedVrt=tstDst; - (*WrkVrtSet).push_back(newvrt); - (*WrkVrtSet)[iv].Good=false; - (*WrkVrtSet)[jv].Good=false; - break; - } +// +//- Try to merge all vertices with common tracks + std::multimap<int,std::pair<int,int>> vrtWithCommonTrk; + std::multimap<int,std::pair<int,int>>::reverse_iterator icvrt; + do{ + NSoluI=(*WrkVrtSet).size(); + vrtWithCommonTrk.clear(); + for(int iv=0; iv<NSoluI-1; iv++ ){ for(int jv=iv+1; jv<NSoluI; jv++){ + if(!(*WrkVrtSet)[iv].Good || !(*WrkVrtSet)[jv].Good) continue; + int nTCom=nTrkCommon( WrkVrtSet, iv, jv); if(!nTCom)continue; + vrtWithCommonTrk.emplace(nTCom,std::make_pair(iv,jv)); + } } + //============================== DEBUG output + //printWrkSet(WrkVrtSet,"InitialVrts"); + //for(auto ku : vrtWithCommonTrk)std::cout<<" nCom="<<ku.first<<" v1="<<ku.second.first<<" v2="<<ku.second.second<<'\n'; + //=========================================== + for(icvrt=vrtWithCommonTrk.rbegin(); icvrt!=vrtWithCommonTrk.rend(); icvrt++){ + int nTCom=(*icvrt).first; + int iv=(*icvrt).second.first; + int jv=(*icvrt).second.second; + int nTrkI=(*WrkVrtSet)[iv].SelTrk.size(); + int nTrkJ=(*WrkVrtSet)[jv].SelTrk.size(); + double probV=-1.; + if (xAODwrk)probV=mergeAndRefitVertices( WrkVrtSet, iv, jv, newvrt, xAODwrk->listJetTracks); + else if(RECwork)probV=mergeAndRefitVertices( WrkVrtSet, iv, jv, newvrt, RECwork->listJetTracks); + ////std::cout<<" ntcommon="<<(*icvrt).first<<" prb="<<probV<<" itrk="<<nTrkI<<" jtrk="<<nTrkJ<<'\n'; + if(probV<probVrtMergeLimit){ + if(nTrkI==2 || nTrkJ==2 || nTCom<2) continue; + if((nTCom>nTrkI-nTCom || nTCom>nTrkJ-nTCom)){ //2 and more common tracks for NTr>=3 vertices. Merge anyway. + if (xAODwrk)mergeAndRefitOverlapVertices( WrkVrtSet, iv, jv, xAODwrk->listJetTracks); + else if(RECwork)mergeAndRefitOverlapVertices( WrkVrtSet, iv, jv, RECwork->listJetTracks); + break; //Vertex list is changed. Restart merging from scratch. } - } + continue; //Continue merging loop + } + newvrt.Good = true; + (*WrkVrtSet).push_back(newvrt); + (*WrkVrtSet)[iv].Good=false; + (*WrkVrtSet)[jv].Good=false; + break; //Merging successful. Break merging loop and remake list of connected vertices } - } + } while( icvrt != vrtWithCommonTrk.rend() ); + if(m_fillHist){ int cvgood=0; for(int iv=0; iv<(int)(*WrkVrtSet).size(); iv++) if((*WrkVrtSet)[iv].Good)cvgood++; + m_hb_rawVrtN->Fill( (float)cvgood, m_w_1); } //-Identify/remove vertices behind the PV wrt jet direction //-Identify remaining 2-track vertices with very bad Chi2 and mass (b-tagging) // for(int iv=0; iv<(int)(*WrkVrtSet).size(); iv++ ){ @@ -308,9 +303,24 @@ const double c_vrtBCMassLimit=5500.; // Mass limit to consider a vertex not com // if( (*WrkVrtSet)[iv].Chi2 > 10.) (*WrkVrtSet)[iv].Good=false; // if( (*WrkVrtSet)[iv].vertexMom.M()>c_vrtBCMassLimit) (*WrkVrtSet)[iv].Good=false; //VK B-tagging specific requirement // } +// //-Remove all bad vertices from the working set + for( auto &tmpV : (*WrkVrtSet) ) { + if(tmpV.vertex.perp()>m_rLayer3+10.)tmpV.Good=false; //Vertices outside Pixel detector + TLorentzVector SVPV(tmpV.vertex.x()-PrimVrt.x(),tmpV.vertex.y()-PrimVrt.y(),tmpV.vertex.z()-PrimVrt.z(),1.); + if(JetDir.DeltaR(SVPV)>m_coneForTag)tmpV.Good=false; // SV is outside of the jet cone + } int tmpV=0; while( tmpV<(int)(*WrkVrtSet).size() )if( !(*WrkVrtSet)[tmpV].Good ) { (*WrkVrtSet).erase((*WrkVrtSet).begin()+tmpV);} else {tmpV++;} + if((*WrkVrtSet).size()==0){ // No vertices at all + delete WrkVrtSet; + return finalVertices; + } + //------ //printWrkSet(WrkVrtSet,"Interm"); + //------ + std::vector< std::vector<float> > trkScore(0); + if(xAODwrk){ for(auto &trk : xAODwrk->listJetTracks) trkScore.push_back(m_trackClassificator->trkTypeWgts(trk, PrimVrt, JetDir)); } + for( auto &tmpV : (*WrkVrtSet) ) tmpV.ProjectedVrt=JetProjDist(tmpV.vertex, PrimVrt, JetDir); //Setup ProjectedVrt //---------------------------------------------------------------------------- // Add primary vertex // @@ -342,11 +352,13 @@ const double c_vrtBCMassLimit=5500.; // Mass limit to consider a vertex not com // } // //---------------------------------------------------------------------------- -// Here we have the overlapping solutions +// Here we have the overlapping solutions. +// Vertices may have only 1 common track. // Now solution cleaning int nGoodVertices=0; // Final number of good vertices - int n2trVrt=0; // N vertices with 2 and more tracks + int n2trVrt=0; // N of vertices with 2 tracks + int nNtrVrt=0; // N vertices with 3 and more tracks std::vector< std::deque<long int> > *TrkInVrt =new std::vector< std::deque<long int> >(NTracks); double foundMaxT; long int SelectedTrack, SelectedVertex; int foundV1, foundV2; @@ -425,7 +437,7 @@ const double c_vrtBCMassLimit=5500.; // Mass limit to consider a vertex not com minDistVV=minVrtVrtDistNext( WrkVrtSet, foundV1, foundV2); } // -// Try to improve vertices with big Chi2 +// Try to improve vertices with big Chi2 if something went wrong. Just precaution. for(int iv=0; iv<(int)WrkVrtSet->size(); iv++) { if(!(*WrkVrtSet)[iv].Good ) continue; //don't work on vertex which is already bad if( (*WrkVrtSet)[iv].SelTrk.size()<3 ) continue; @@ -541,23 +553,7 @@ const double c_vrtBCMassLimit=5500.; // Mass limit to consider a vertex not com } // //--- Check interactions on pixel layers -// - //if( curVrt.vertex.perp()>m_beampipeR-2. && curVrt.detachedTrack<0) { - if( curVrt.vertex.perp()>m_beampipeR-2.) { - double minPt=1.e9; for(int ti=0; ti<nth; ti++) minPt=TMath::Min(minPt,MomAtVrt(curVrt.TrkAtVrt[ti]).Pt()); - if(m_fillHist){ - m_hb_totmass2T0->Fill( curVrt.vertexMom.M()-nth*m_massPi, m_w_1); - m_hb_r2d->Fill( curVrt.vertex.perp(), m_w_1); - } - if(useMaterialRejection){ - if( insideMatLayer(curVrt.vertex.x(),curVrt.vertex.y()) ) continue; - } - //double dR=0; for(int mi=0;mi<nth-1;mi++)for(int mj=mi+1;mj<nth;mj++) - // dR=TMath::Max(dR,MomAtVrt(curVrt.TrkAtVrt[mi]).DeltaR(MomAtVrt(curVrt.TrkAtVrt[mj]))); - //if(m_fillHist)m_hb_deltaRSVPV->Fill(dR,m_w_1); - //if( m_killHighPtIBLFakes && curVrt.vertex.perp()<m_rLayer1 && dR<0.015)continue; - if(Signif3D<20.) continue; - } + if(m_fillHist && nth==2){ m_hb_r2d->Fill( curVrt.vertex.perp(), m_w_1); } // //--- Check V0s and conversions if(nth==2 && curVrt.vertexCharge==0 && curVrt.detachedTrack<0){ @@ -574,19 +570,9 @@ const double c_vrtBCMassLimit=5500.; // Mass limit to consider a vertex not com //--- if(m_fillHist){m_hb_sig3DTot->Fill( Signif3D, m_w_1); } if(Signif3D<m_sel2VrtSigCut)continue; //Main PV-SV distance quality cut -//----- -// float Dist2D= (*WrkVrtSet)[iv].vertex.perp(); -// if(Dist2D<2.){ -// double tmpProb=0.; -// if (xAODwrk)tmpProb=FitVertexWithPV( WrkVrtSet, iv, PrimVrt, xAODwrk->listJetTracks); -// else if(RECwork)tmpProb=FitVertexWithPV( WrkVrtSet, iv, PrimVrt, RECwork->listJetTracks); -// if(m_fillHist){m_hb_trkPtMax->Fill( tmpProb*1.e5, m_w_1); } -// if(tmpProb>0.01)continue; // Vertex can be associated with PV -// } //--- curVrt.Good = true; /* Vertex is absolutely good */ nGoodVertices++; - if(nth>=2)n2trVrt++; } // //--Final cleaning of the 1-track vertices set. Must be behind all other cleanings. @@ -599,13 +585,9 @@ const double c_vrtBCMassLimit=5500.; // Mass limit to consider a vertex not com //Checks std::vector<WrkVrt> GoodVertices(0); nGoodVertices=0; // Final number of good vertices - n2trVrt=0; // N vertices with 2 and more tracks - int nNtrVrt=0; // N vertices with 3 and more tracks + n2trVrt=nNtrVrt=0; // N of vertices with different amount of tracks for(auto & iv : (*WrkVrtSet) ) { nth=iv.SelTrk.size(); if(nth == 0) continue; /* Definitely bad vertices */ - Amg::Vector3D tmpVec=iv.vertex-PrimVrt.position(); - TLorentzVector Momentum(tmpVec.x(),tmpVec.y(),tmpVec.z(),m_massPi); - //if(Momentum.DeltaR(JetDir)>m_coneForTag) iv.Good=false; /* Vertex outside jet cone??? Very bad cut*/ if( iv.Good) { nGoodVertices++; GoodVertices.emplace_back(iv); /* add it */ @@ -657,8 +639,10 @@ const double c_vrtBCMassLimit=5500.; // Mass limit to consider a vertex not com double Signif=0.; std::vector<double> Impact,ImpactError; for(int it=0; it<(int)nonusedTrk.size(); it++){ MatchedSV tmpV = {0, 1.e9}; - for(int iv=0; iv<(int)GoodVertices.size(); iv++){ - if(GoodVertices[iv].SelTrk.size()<2) continue; + for(int iv=0; iv<(int)GoodVertices.size(); iv++){ //--Find vertex closest to the given track + if(!GoodVertices[iv].Good) continue; + if(GoodVertices[iv].SelTrk.size()<2) continue; + if( VrtVrtDist(PrimVrt, GoodVertices[iv].vertex, GoodVertices[iv].vertexCov, JetDir) < 10.) continue; //--Too close to PV if (RECwork)Signif = m_fitSvc->VKalGetImpact(RECwork->listJetTracks[nonusedTrk[it]], GoodVertices[iv].vertex, 1, Impact, ImpactError); else if(xAODwrk)Signif = m_fitSvc->VKalGetImpact(xAODwrk->listJetTracks[nonusedTrk[it]], GoodVertices[iv].vertex, 1, Impact, ImpactError); if(Signif<tmpV.Signif3D){tmpV.Signif3D=Signif; tmpV.indVrt=iv;} @@ -674,7 +658,7 @@ const double c_vrtBCMassLimit=5500.; // Mass limit to consider a vertex not com if(addTrk.size()>1){atrk++;if(atrk->first<4.){newV.SelTrk.push_back(nonusedTrk[atrk->second]);}} if(addedT){ if (xAODwrk)vProb = RefitVertex( newV, xAODwrk->listJetTracks); else if(RECwork)vProb = RefitVertex( newV, RECwork->listJetTracks); - if(vProb>0.01)GoodVertices[iv]=newV; + if(vProb>0.01)GoodVertices[iv]=newV; else{ std::vector<WrkVrt> TestVertices(1,newV); if (xAODwrk)vProb=improveVertexChi2( &TestVertices, 0, xAODwrk->listJetTracks); else if(RECwork)vProb=improveVertexChi2( &TestVertices, 0, RECwork->listJetTracks); @@ -682,44 +666,24 @@ const double c_vrtBCMassLimit=5500.; // Mass limit to consider a vertex not com } } } -//------------------------------------------------------------- -// Check if very close vertices are present and merge them. Not big effect in ttbar -// - bool vrtMerged=false; //to check whether something is really merged - for(int iv=0; iv<(int)GoodVertices.size()-1; iv++ ){ if(!GoodVertices[iv].Good) continue; - for(int jv=iv+1; jv<(int)GoodVertices.size(); jv++){ if(!GoodVertices[jv].Good) continue; - if(GoodVertices[iv].SelTrk.size()>2 && GoodVertices[jv].SelTrk.size()>2)continue; - double probV=-1.; - if (xAODwrk)probV=mergeAndRefitVertices( &GoodVertices, iv, jv, newvrt, xAODwrk->listJetTracks); - else if(RECwork)probV=mergeAndRefitVertices( &GoodVertices, iv, jv, newvrt, RECwork->listJetTracks); - if(probV>0.1){ // Merged vertex is very good - std::swap(GoodVertices[iv],newvrt); - GoodVertices[iv].ProjectedVrt=JetProjDist(GoodVertices[iv].vertex, PrimVrt, JetDir); - GoodVertices[jv].Good=false; //Drop vertex - vrtMerged=true; - } } } - if(vrtMerged){ //-Remove all bad vertices from the good vertex set - int iV=0; while( iV<(int)GoodVertices.size() ) - { if( !GoodVertices[iV].Good ) { GoodVertices.erase(GoodVertices.begin()+iV);} else {iV++;} } - } -//-- -// printWrkSet(&GoodVertices,"FinalVrtSet"); +///// + //if(GoodVertices.size()>=4) + //printWrkSet(&GoodVertices,"FinalVrtSet"); //------------------------------------------- // Saving and final cleaning // nGoodVertices=0; // Final number of good vertices int n1trVrt=0; // Final number of good 1-track vertices TLorentzVector VertexMom; - double trackPt, trackPtMax=0.; for(int iv=0; iv<(int)GoodVertices.size(); iv++) { nth=GoodVertices[iv].SelTrk.size(); if(xAODwrk)xAODwrk->tmpListTracks.clear(); else if(RECwork)RECwork->tmpListTracks.clear(); + float vrtSumW=0.; for(i=0;i<nth;i++) { j=GoodVertices[iv].SelTrk[i]; /*Track number*/ if (xAODwrk)xAODwrk->tmpListTracks.push_back( xAODwrk->listJetTracks[j] ); else if(RECwork)RECwork->tmpListTracks.push_back( RECwork->listJetTracks[j] ); - trackPt=pTvsDir(Amg::Vector3D(JetDir.Vect().X(),JetDir.Vect().X(),JetDir.Vect().Z()), GoodVertices[iv].TrkAtVrt[i]); - if(trackPt>trackPtMax)trackPtMax=trackPt; + if(xAODwrk)vrtSumW+=trkScore[j][0]; } if( m_fillHist ){ if(nth==1)m_hb_r1dc->Fill( GoodVertices[iv].vertex.perp(), m_w_1); @@ -732,7 +696,8 @@ const double c_vrtBCMassLimit=5500.; // Mass limit to consider a vertex not com else { m_hb_totmass2T2->Fill( GoodVertices[iv].vertexMom.M(), m_w_1);} m_hb_sig3D2tr->Fill( Signif3D , m_w_1); if(GoodVertices[iv].vertexCharge==0)m_hb_totmassEE->Fill(massV0(GoodVertices[iv].TrkAtVrt,m_massE,m_massE),m_w_1); - } else if( nth==1){ + //} else if( nth==1){ + } else if( GoodVertices[iv].vertexMom.M()>6000.){ m_hb_sig3D1tr->Fill( Signif3D, m_w_1); } else { m_hb_sig3DNtr->Fill( Signif3D, m_w_1); @@ -785,7 +750,9 @@ const double c_vrtBCMassLimit=5500.; // Mass limit to consider a vertex not com //============================================== if(m_fillHist){m_hb_goodvrtN->Fill( nGoodVertices+0.1, m_w_1); - m_hb_goodvrtN->Fill( n1trVrt+15., m_w_1);} + if(n1trVrt)m_hb_goodvrtN->Fill( n1trVrt+15., m_w_1); + fillNVrtNTup( GoodVertices, trkScore, PrimVrt, JetDir); + } if(nGoodVertices == 0){ delete WrkVrtSet; delete TrkInVrt; @@ -854,12 +821,18 @@ const double c_vrtBCMassLimit=5500.; // Mass limit to consider a vertex not com WrkVrt newvrt; newvrt.Good=true; std::vector<const Particle*> ListBaseTracks; int NTrk=(*WrkVrtSet)[iv].SelTrk.size(), SelT=-1; + if(NTrk<3)return; + StatusCode sc; sc.setChecked(); +//=== To get robust definition of most bad outlier + m_fitSvc->setRobustness(5); + sc = RefitVertex( WrkVrtSet, iv, AllTracks); + if(sc.isFailure()){ (*WrkVrtSet)[iv].Good=false; return; } + m_fitSvc->setRobustness(0); +//-------------------------------------------------- double Chi2Max=0.; for(int i=0; i<NTrk; i++){ if( (*WrkVrtSet)[iv].Chi2PerTrk[i]>Chi2Max) { Chi2Max=(*WrkVrtSet)[iv].Chi2PerTrk[i]; SelT=i;} } - if(SelT==-1)return; - StatusCode sc; int NVrtCur=WrkVrtSet->size(); for(int i=0; i<NTrk; i++){ if(i==SelT)continue; @@ -925,24 +898,19 @@ const double c_vrtBCMassLimit=5500.; // Mass limit to consider a vertex not com for(int mtv=0; mtv<(int)WrkVrtSet->size(); mtv++) { if( (*WrkVrtSet)[mtv].SelTrk.size()<2 ) continue; if(!(*WrkVrtSet)[mtv].Good ) continue; - if( countVT[mtv] < 2 ) continue; - double distM=1000000.; + if( countVT[mtv] < 1 ) continue; + double distM=1.e9; int best1TVrt=-1; for(int i1tv=0; i1tv<(int)WrkVrtSet->size(); i1tv++) { if( (*WrkVrtSet)[i1tv].SelTrk.size()!=1 ) continue; if(!(*WrkVrtSet)[i1tv].Good ) continue; if( linkedVrt[i1tv] != mtv ) continue; - double dist=((*WrkVrtSet)[mtv].vertex - (*WrkVrtSet)[i1tv].vertex).mag(); + //double dist=((*WrkVrtSet)[mtv].vertex - (*WrkVrtSet)[i1tv].vertex).mag(); + double dist=((*WrkVrtSet)[mtv].vertexMom+(*WrkVrtSet)[i1tv].vertexMom).M(); //Use if( dist < distM ) {distM=dist; best1TVrt=i1tv;} (*WrkVrtSet)[i1tv].Good=false; } - if(best1TVrt>-1)(*WrkVrtSet)[best1TVrt].Good=true; - } -// -//--- Final Chi2 (last 2track vertex with the given track) - for(int i1tv=0; i1tv<(int)WrkVrtSet->size(); i1tv++) { - if( (*WrkVrtSet)[i1tv].SelTrk.size()!=1 || !(*WrkVrtSet)[i1tv].Good ) continue; - if( (*WrkVrtSet)[i1tv].Chi2>8.) (*WrkVrtSet)[i1tv].Good=false; + if(best1TVrt>-1 && distM<c_vrtBCMassLimit)(*WrkVrtSet)[best1TVrt].Good=true; } } @@ -951,12 +919,13 @@ const double c_vrtBCMassLimit=5500.; // Mass limit to consider a vertex not com std::vector< std::deque<long int> > *TrkInVrt) const { - int NSet=WrkVrtSet->size(); int iv, jt, NTrkAtVrt, tracknum; - for( iv=0; iv<NSet; iv++) { - NTrkAtVrt=(*WrkVrtSet)[iv].SelTrk.size(); + int NSet=WrkVrtSet->size(); + for(int iv=0; iv<NSet; iv++) { + if(!(*WrkVrtSet)[iv].Good) continue; + int NTrkAtVrt=(*WrkVrtSet)[iv].SelTrk.size(); if(NTrkAtVrt<2) continue; - for( jt=0; jt<NTrkAtVrt; jt++){ - tracknum=(*WrkVrtSet)[iv].SelTrk[jt]; + for(int jt=0; jt<NTrkAtVrt; jt++){ + int tracknum=(*WrkVrtSet)[iv].SelTrk[jt]; (*TrkInVrt).at(tracknum).push_back(iv); } } @@ -969,29 +938,34 @@ const double c_vrtBCMassLimit=5500.; // Mass limit to consider a vertex not com long int & SelectedVertex) const { - long int NTrack=TrkInVrt->size(); int it, jv, itmp, NVrt, VertexNumber; + long int NTrack=TrkInVrt->size(); + int it, jv, itmp, NVrt, VertexNumber; - double MaxOf=-999999999; double Chi2Red; double SelectedProb=-1.; + double MaxOf=-999999999, Chi2Red=0., SelectedProb=-1.; // - long int NShMax=0; + int NShareMax=0; for( it=0; it<NTrack; it++) { NVrt=(*TrkInVrt)[it].size(); /*Number of vertices for this track*/ - if( NVrt > NShMax ) NShMax=NVrt; + if( NVrt > NShareMax ) NShareMax=NVrt; } - if(NShMax<=1)return MaxOf; /* No shared tracks */ + if(NShareMax<=1)return MaxOf; /* No shared tracks */ // for( it=0; it<NTrack; it++) { NVrt=(*TrkInVrt)[it].size(); /*Number of vertices for this track*/ if( NVrt <= 1 ) continue; /*Should ALWAYS be checked for safety*/ - if( NVrt < NShMax ) continue; /*Not a shared track with maximal sharing*/ + if( NVrt < NShareMax ) continue; /*Not a shared track with maximal sharing*/ + int N2trVrt=0; + for(auto &vrtn :(*TrkInVrt)[it] ){ if((*WrkVrtSet).at(vrtn).SelTrk.size()==2)N2trVrt++; } //count number of 2-track vertices for( jv=0; jv<NVrt; jv++ ){ VertexNumber=(*TrkInVrt)[it][jv]; - int NTrkInVrt=(*WrkVrtSet).at(VertexNumber).SelTrk.size(); - if( NTrkInVrt <= 1) continue; // one track vertex - nothing to do + if(!(*WrkVrtSet).at(VertexNumber).Good)continue; + int NTrkInVrt=(*WrkVrtSet)[VertexNumber].SelTrk.size(); + if( NTrkInVrt <= 1) continue; // one track vertex - nothing to do + if( N2trVrt>0 && N2trVrt<NShareMax && NTrkInVrt>2) continue; // Mixture of multi-track and 2-track vrts. Skip multi-track then. for( itmp=0; itmp<NTrkInVrt; itmp++){ if( (*WrkVrtSet)[VertexNumber].SelTrk[itmp] == it ) { /* Track found*/ //Chi2Red=(*WrkVrtSet)[VertexNumber].Chi2PerTrk.at(itmp)/m_chiScale[(NTrkInVrt<10?NTrkInVrt:10)]; // Reduced Chi2 - //if(NTrkInVrt==2){ Chi2Red += 30./((*WrkVrtSet)[VertexNumber].vertex.perp()+5.);} //VK Reduce vrt multiplicity. May decrease fake rate + //if(NTrkInVrt==2){ Chi2Red += 30./((*WrkVrtSet)[VertexNumber].vertex.perp()+5.);} //VK Reduce vrt multiplicity. Chi2Red=(*WrkVrtSet)[VertexNumber].Chi2PerTrk.at(itmp); // Normal Chi2 seems the best if(NTrkInVrt==2){ Chi2Red=(*WrkVrtSet)[VertexNumber].Chi2/2.; //VK 2track vertices with Normal Chi2Red @@ -999,7 +973,7 @@ const double c_vrtBCMassLimit=5500.; // Mass limit to consider a vertex not com } double prob_vrt = TMath::Prob( (*WrkVrtSet)[VertexNumber].Chi2, 2*(*WrkVrtSet)[VertexNumber].SelTrk.size()-3); if( MaxOf < Chi2Red ){ - if(MaxOf>0 && prob_vrt>0.01 && SelectedProb<0.01 ) continue; // Don't disassemble good vertices is a bad one is present + if(MaxOf>0 && prob_vrt>0.01 && SelectedProb<0.01 ) continue; // Don't disassemble good vertices if a bad one is present MaxOf = Chi2Red; SelectedTrack=it; SelectedVertex=VertexNumber; SelectedProb = prob_vrt; @@ -1064,6 +1038,7 @@ const double c_vrtBCMassLimit=5500.; // Mass limit to consider a vertex not com (*TrkInVrt)[LeftTrack].erase(it); break; } } + if( TMath::Prob( (*WrkVrtSet)[SelectedVertex].Chi2, 1) < 0.05 ) (*WrkVrtSet)[SelectedVertex].Good=false; // Not really good Chi2 for one-track vertex if( (*WrkVrtSet)[SelectedVertex].vertexMom.M()>c_vrtBCMassLimit)(*WrkVrtSet)[SelectedVertex].Good=false; // Vertex is too heavy int ipos=0; if(posInVrtFit==0)ipos=1; // Position of remaining track in previous 2track vertex fit (*WrkVrtSet)[SelectedVertex].vertexMom=MomAtVrt((*WrkVrtSet)[SelectedVertex].TrkAtVrt[ipos]); //Redefine vertexMom using remaining track @@ -1188,6 +1163,95 @@ const double c_vrtBCMassLimit=5500.; // Mass limit to consider a vertex not com if( newvrt.Chi2PerTrk.size()==2) newvrt.Chi2PerTrk[0]=newvrt.Chi2PerTrk[1]=newvrt.Chi2/2.; return TMath::Prob( newvrt.Chi2, 2*newvrt.SelTrk.size()-3); } + //================== Intelligent merge of multitrack vertices with 2 and more common tracks + template <class Particle> + void InDetVKalVxInJetTool::mergeAndRefitOverlapVertices( std::vector<WrkVrt> *WrkVrtSet, int V1, int V2, + std::vector<const Particle*> & AllTrackList) + const + { + if(!(*WrkVrtSet).at(V1).Good)return; //bad vertex + if(!(*WrkVrtSet).at(V2).Good)return; //bad vertex + WrkVrt newvrt; + newvrt.Good=true; + if( nTrkCommon( WrkVrtSet, V1, V2)<2 )return; //No overlap + //- V1 should become ref. vertex. Another Vrt tracks will be added to it. + if( (*WrkVrtSet)[V1].SelTrk.size() < (*WrkVrtSet)[V2].SelTrk.size() ) + {int itmp=V2; V2=V1; V1=itmp;} //Vertex with NTrk=max is chosen + else if( (*WrkVrtSet)[V1].SelTrk.size() == (*WrkVrtSet)[V2].SelTrk.size() ) + { if( (*WrkVrtSet)[V1].Chi2 > (*WrkVrtSet)[V2].Chi2 ) {int itmp=V2; V2=V1; V1=itmp;} } // Vertex with minimal Chi2 is chosen + //- Fill base track list for new vertex + newvrt.SelTrk.resize( (*WrkVrtSet)[V1].SelTrk.size() ); + std::copy((*WrkVrtSet)[V1].SelTrk.begin(),(*WrkVrtSet)[V1].SelTrk.end(), newvrt.SelTrk.begin()); + //- Identify non-common tracks in second vertex + std::vector<int> noncommonTrk(0); + for(auto &it : (*WrkVrtSet)[V2].SelTrk){ + if( std::find((*WrkVrtSet)[V1].SelTrk.begin(), (*WrkVrtSet)[V1].SelTrk.end(), it) == (*WrkVrtSet)[V1].SelTrk.end() ) + noncommonTrk.push_back(it); + } + // + // Try to add non-common tracks one by one + std::vector<const Particle*> fitTrackList(0); + std::vector<int> detachedTrk(0); + StatusCode sc; sc.setChecked(); + WrkVrt bestVrt; + bool foundMerged=false; + for( auto nct : noncommonTrk){ + fitTrackList.clear(); + for(int it=0; it<(int)newvrt.SelTrk.size(); it++)fitTrackList.push_back( AllTrackList[newvrt.SelTrk[it]] ); + fitTrackList.push_back( AllTrackList.at(nct) ); + m_fitSvc->setApproximateVertex( (*WrkVrtSet)[V1].vertex[0],(*WrkVrtSet)[V1].vertex[1],(*WrkVrtSet)[V1].vertex[2]); + sc=VKalVrtFitBase(fitTrackList, newvrt.vertex, newvrt.vertexMom, newvrt.vertexCharge, newvrt.vertexCov, + newvrt.Chi2PerTrk, newvrt.TrkAtVrt, newvrt.Chi2); + if( sc.isFailure() || TMath::Prob( newvrt.Chi2, 2*newvrt.SelTrk.size()+2-3)<0.001 ) { + detachedTrk.push_back(nct); + continue; + } + newvrt.SelTrk.push_back(nct); // Compatible track. Add to common vertex. + bestVrt=newvrt; + foundMerged=true; + } + if(foundMerged)(*WrkVrtSet)[V1]=bestVrt; + (*WrkVrtSet)[V2].Good=false; + // + // Now detached tracks + if(detachedTrk.size()>1){ + WrkVrt nVrt; + fitTrackList.clear(); nVrt.SelTrk.clear(); + for(auto nct : detachedTrk){ fitTrackList.push_back( AllTrackList[nct] ); nVrt.SelTrk.push_back(nct); } + m_fitSvc->setApproximateVertex( (*WrkVrtSet)[V2].vertex[0],(*WrkVrtSet)[V2].vertex[1],(*WrkVrtSet)[V2].vertex[2]); + sc=VKalVrtFitBase(fitTrackList, nVrt.vertex, nVrt.vertexMom, nVrt.vertexCharge, nVrt.vertexCov, + nVrt.Chi2PerTrk, nVrt.TrkAtVrt, nVrt.Chi2); + if(sc.isSuccess()) (*WrkVrtSet).push_back(nVrt); + } else if( detachedTrk.size()==1 ){ + bool tFound=false; + for( auto &vrt : (*WrkVrtSet) ){ + if( !vrt.Good || vrt.SelTrk.size()<2 )continue; + if( std::find(vrt.SelTrk.begin(), vrt.SelTrk.end(), detachedTrk[0]) != vrt.SelTrk.end() ) { tFound=true; break; } + } + if( !tFound ) { //Track is not present in other vertices. + double Chi2min=1.e9; int selectedTrk=-1; + WrkVrt saveVrt; + fitTrackList.resize(2); + fitTrackList[0]= AllTrackList[detachedTrk[0]]; + for(auto trk : (*WrkVrtSet)[V2].SelTrk){ + if(trk==detachedTrk[0])continue; + WrkVrt nVrt; nVrt.Good=true; + fitTrackList[1]=AllTrackList[trk]; + m_fitSvc->setApproximateVertex( (*WrkVrtSet)[V2].vertex[0],(*WrkVrtSet)[V2].vertex[1],(*WrkVrtSet)[V2].vertex[2]); + sc=VKalVrtFitBase(fitTrackList, nVrt.vertex, nVrt.vertexMom, nVrt.vertexCharge, nVrt.vertexCov, + nVrt.Chi2PerTrk, nVrt.TrkAtVrt, nVrt.Chi2); + if(sc.isSuccess() && nVrt.Chi2<Chi2min) {Chi2min=nVrt.Chi2; saveVrt=nVrt; selectedTrk=trk; } + } + if(Chi2min<1.e9){ + saveVrt.SelTrk.resize(1); saveVrt.SelTrk[0]=detachedTrk[0]; + saveVrt.detachedTrack=selectedTrk; + saveVrt.vertexMom=MomAtVrt(saveVrt.TrkAtVrt[0]); //redefine vertex momentum + (*WrkVrtSet).push_back(saveVrt); + } + } + } + return ; + } // // Iterate track removal until vertex get good Chi2 diff --git a/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/src/CutTrk.cxx b/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/src/CutTrk.cxx index f813ae45f756a2fc42c43b5efde7ea39e64e7b25..935a4abc3710720144ff3abd6252f09ab771d79c 100755 --- a/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/src/CutTrk.cxx +++ b/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/src/CutTrk.cxx @@ -127,7 +127,7 @@ namespace InDet{ std::vector<const xAOD::TrackParticle*>::const_iterator i_ntrk; std::vector<double> Impact,ImpactError; - std::map<double,const xAOD::TrackParticle*> orderedTrk; + std::multimap<double,const xAOD::TrackParticle*> orderedTrk; int NPrimTrk=0; for (i_ntrk = InpTrk.begin(); i_ntrk < InpTrk.end(); ++i_ntrk) { // @@ -215,7 +215,7 @@ namespace InDet{ if( sc.isFailure() ) continue; //double rankBTrk=RankBTrk((*i_ntrk)->pt(),JetDir.Perp(),ImpactSignif); if(trkRank[1]>0.5)NPrimTrk += 1; - orderedTrk[trkRank[0]]= *i_ntrk; + orderedTrk.emplace(trkRank[0],*i_ntrk); } //---- Order tracks according to ranks std::map<double,const xAOD::TrackParticle*>::reverse_iterator rt=orderedTrk.rbegin(); diff --git a/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/src/InDetTrkInJetType.cxx b/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/src/InDetTrkInJetType.cxx index c7b07e5d15b497b2c384617740ec6c7199e15ada..3da8d5e80ab0c21570b7ea84ed1c6b15c0aa0c29 100644 --- a/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/src/InDetTrkInJetType.cxx +++ b/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/src/InDetTrkInJetType.cxx @@ -20,6 +20,9 @@ InDetTrkInJetType::InDetTrkInJetType(const std::string& type, const IInterface* parent): AthAlgTool(type,name,parent), m_tmvaReader(0), + m_trkSctHitsCut(4), + m_trkPixelHitsCut(1), + m_trkChi2Cut(5.), m_trkMinPtCut(700.), m_d0_limLow(-3.), m_d0_limUpp( 5.), @@ -29,6 +32,9 @@ InDetTrkInJetType::InDetTrkInJetType(const std::string& type, m_fitterSvc("Trk::TrkVKalVrtFitter/VertexFitterTool",this) { declareInterface<IInDetTrkInJetType>(this); + declareProperty("trkSctHits", m_trkSctHitsCut , "Cut on track SCT hits number" ); + declareProperty("trkPixelHits", m_trkPixelHitsCut , "Cut on track Pixel hits number" ); + declareProperty("trkChi2", m_trkChi2Cut , "Cut on track Chi2/Ndf" ); declareProperty("trkMinPt", m_trkMinPtCut , "Minimal track Pt cut" ); declareProperty("d0_limLow", m_d0_limLow , "Low d0 impact cut" ); declareProperty("d0_limUpp", m_d0_limUpp , "Upper d0 impact cut" ); @@ -97,9 +103,21 @@ InDetTrkInJetType::InDetTrkInJetType(const std::string& type, std::vector<float> InDetTrkInJetType::trkTypeWgts(const xAOD::TrackParticle * Trk, const xAOD::Vertex & PV, const TLorentzVector & Jet) { +//-- Track quality checks std::vector<float> safeReturn(3,0.); - if( !m_initialised ) return safeReturn; - if(Jet.Perp()>2500000.)return safeReturn; + if( !m_initialised ) return safeReturn; + if(Jet.Perp() > 2500000.) return safeReturn; + if(Trk->pt() < m_trkMinPtCut) return safeReturn; + if(Trk->pt() > Jet.Pt()) return safeReturn; + if(Trk->numberDoF() == 0) return safeReturn; //Safety + if(Trk->chiSquared()/Trk->numberDoF() > m_trkChi2Cut) return safeReturn; + uint8_t PixelHits,SctHits; + if( !(Trk->summaryValue(PixelHits,xAOD::numberOfPixelHits)) ) return safeReturn; // No Pixel hits. Bad. + if( !(Trk->summaryValue( SctHits,xAOD::numberOfSCTHits)) ) return safeReturn; // No SCT hits. Bad. + if( PixelHits < m_trkPixelHitsCut ) return safeReturn; + if( SctHits < m_trkSctHitsCut ) return safeReturn; + + std::vector<double> Impact,ImpactError; m_Sig3D=m_fitSvc->VKalGetImpact(Trk, PV.position(), 1, Impact, ImpactError); AmgVector(5) tmpPerigee = Trk->perigeeParameters().parameters(); @@ -110,7 +128,7 @@ InDetTrkInJetType::InDetTrkInJetType(const std::string& type, double SignifR = Impact[0]/ sqrt(ImpactError[0]); double SignifZ = Impact[1]/ sqrt(ImpactError[2]); double trkSignif = sqrt( (SignifR+0.6)*(SignifR+0.6) + (SignifZ+0.0)*(SignifZ+0.0) ); -//--- +//---Calibrated range selection if(Impact[0]<m_d0_limLow || Impact[0]>m_d0_limUpp) return safeReturn; if(Impact[0]<m_Z0_limLow || Impact[0]>m_Z0_limUpp) return safeReturn; if( sqrt(SignifR*SignifR +SignifZ*SignifZ) < 1.) return safeReturn; diff --git a/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/src/InDetVKalVxInJetTool.cxx b/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/src/InDetVKalVxInJetTool.cxx index b947561ad208c494f40304a845dba9f2b627ec26..4fd96f2179c2338dc6b008409aed5fc4ff822431 100755 --- a/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/src/InDetVKalVxInJetTool.cxx +++ b/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/src/InDetVKalVxInJetTool.cxx @@ -51,7 +51,9 @@ InDetVKalVxInJetTool::InDetVKalVxInJetTool(const std::string& type, m_a0TrkErrorCut(1.0), m_zTrkErrorCut(5.0), m_cutHFClass(0.1), - m_antiGarbageCut(0.85), + m_antiGarbageCut(0.80), + m_antiFragmentCut(0.80), + m_Vrt2TrMassLimit(4000.), m_fillHist(false), m_existIBL(true), m_RobustFit(1), @@ -105,7 +107,9 @@ InDetVKalVxInJetTool::InDetVKalVxInJetTool(const std::string& type, declareProperty("A0TrkErrorCut", m_a0TrkErrorCut, "Track A0 error cut" ); declareProperty("ZTrkErrorCut", m_zTrkErrorCut, "Track Z impact error cut" ); declareProperty("CutHFClass", m_cutHFClass, "Cut on HF classification weight" ); - declareProperty("AntiGarbageCut", m_antiGarbageCut, "Cut on Garbage classification weight for removal" ); + declareProperty("AntiGarbageCut", m_antiGarbageCut, "Cut on Garbage classification weight for track removal" ); + declareProperty("AntiFragmentCut",m_antiFragmentCut, "Cut on Fragmentation classification weight for track removal" ); + declareProperty("Vrt2TrMassLimit",m_Vrt2TrMassLimit, "Maximal allowed mass for 2-track vertices" ); declareProperty("Sel2VrtChi2Cut", m_sel2VrtChi2Cut, "Cut on Chi2 of 2-track vertex for initial selection" ); declareProperty("Sel2VrtSigCut", m_sel2VrtSigCut, "Cut on significance of 3D distance between initial 2-track vertex and PV" ); @@ -339,7 +343,9 @@ InDetVKalVxInJetTool::InDetVKalVxInJetTool(const std::string& type, //------------------------------------------------------- m_curTup=new DevTuple(); m_tuple = new TTree("Tracks","Tracks"); - std::string TreeDir("/file1/stat/SVrtInJet"+m_instanceName+"/"); + std::string TreeDir; + if(m_multiVertex) TreeDir="/file1/stat/MSVrtInJet"+m_instanceName+"/"; + else TreeDir="/file1/stat/SVrtInJet"+m_instanceName+"/"; sc = hist_root->regTree(TreeDir,m_tuple); if (sc.isSuccess()) { m_tuple->Branch("ptjet", &m_curTup->ptjet, "ptjet/F"); @@ -363,17 +369,32 @@ InDetVKalVxInJetTool::InDetVKalVxInJetTool(const std::string& type, m_tuple->Branch("prodTJ", &m_curTup->prodTJ, "prodTJ[ntrk]/F"); m_tuple->Branch("nVrtT", &m_curTup->nVrtT, "nVrtT[ntrk]/I"); m_tuple->Branch("chg", &m_curTup->chg, "chg[ntrk]/I"); + //----- + m_tuple->Branch("TotM", &m_curTup->TotM, "TotM/F"); + //----- m_tuple->Branch("nvrt", &m_curTup->nVrt, "nvrt/I"); m_tuple->Branch("VrtDist2D", &m_curTup->VrtDist2D, "VrtDist2D[nvrt]/F"); m_tuple->Branch("VrtSig3D", &m_curTup->VrtSig3D, "VrtSig3D[nvrt]/F"); m_tuple->Branch("VrtSig2D", &m_curTup->VrtSig2D, "VrtSig2D[nvrt]/F"); + m_tuple->Branch("VrtDR", &m_curTup->VrtDR, "VrtDR[nvrt]/F"); m_tuple->Branch("itrk", &m_curTup->itrk, "itrk[nvrt]/I"); m_tuple->Branch("jtrk", &m_curTup->jtrk, "jtrk[nvrt]/I"); m_tuple->Branch("badV", &m_curTup->badVrt, "badV[nvrt]/I"); m_tuple->Branch("mass", &m_curTup->mass, "mass[nvrt]/F"); m_tuple->Branch("Chi2", &m_curTup->Chi2, "Chi2[nvrt]/F"); + //----- m_tuple->Branch("ntHF", &m_curTup->NTHF, "ntHF/I"); m_tuple->Branch("itHF", &m_curTup->itHF, "itHF[ntHF]/I"); + //----- + m_tuple->Branch("nNVrt", &m_curTup->nNVrt, "nNVrt/I"); + m_tuple->Branch("NVrtDist2D", &m_curTup->NVrtDist2D, "NVrtDist2D[nNVrt]/F"); + m_tuple->Branch("NVrtNT", &m_curTup->NVrtNT, "NVrtNT[nNVrt]/I"); + m_tuple->Branch("NVrtTrkI", &m_curTup->NVrtTrkI, "NVrttrkI[nNVrt]/I"); + m_tuple->Branch("NVrtM", &m_curTup->NVrtM, "NVrtM[nNVrt]/F"); + m_tuple->Branch("NVrtChi2", &m_curTup->NVrtChi2, "NVrtChi2[nNVrt]/F"); + m_tuple->Branch("NVrtMaxW", &m_curTup->NVrtMaxW, "NVrtMaxW[nNVrt]/F"); + m_tuple->Branch("NVrtAveW", &m_curTup->NVrtAveW, "NVrtAveW[nNVrt]/F"); + m_tuple->Branch("NVrtDR", &m_curTup->NVrtDR, "NVrtDR[nNVrt]/F"); } } @@ -425,7 +446,7 @@ InDetVKalVxInJetTool::InDetVKalVxInJetTool(const std::string& type, double EnergyJet = 0.; int N2trVertices = 0 ; int NBigImpTrk = 0 ; - if(m_curTup){ m_curTup->nVrt=0; m_curTup->nTrkInJet=0; m_curTup->NTHF=0; } + if(m_curTup){ m_curTup->nVrt=0; m_curTup->nTrkInJet=0; m_curTup->NTHF=0; m_curTup->nNVrt=0;} int pseudoVrt = 0; @@ -498,7 +519,7 @@ InDetVKalVxInJetTool::InDetVKalVxInJetTool(const std::string& type, double RatioE = 0.; double EnergyJet = 0.; int N2trVertices = 0 ; - if(m_curTup){ m_curTup->nVrt=0; m_curTup->nTrkInJet=0; } + if(m_curTup){ m_curTup->nVrt=0; m_curTup->nTrkInJet=0; m_curTup->nNVrt=0; m_curTup->NTHF=0; } xAOD::Vertex xaodPrimVrt; xaodPrimVrt.setPosition(PrimVrt.position()); diff --git a/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/src/Utilities.cxx b/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/src/Utilities.cxx index 5c322d61c54f76eaeb1226dc026a40559d98e2aa..bd65a75f02d475ccfa2d3274e9d30846848c2fe0 100755 --- a/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/src/Utilities.cxx +++ b/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/src/Utilities.cxx @@ -7,7 +7,6 @@ #include "TrkNeutralParameters/NeutralParameters.h" #include "TrkTrackSummary/TrackSummary.h" #include "TrkVKalVrtFitter/TrkVKalVrtFitter.h" -#include "xAODTruth/TruthParticleContainer.h" //------------------------------------------------- // Other stuff #include <cmath> @@ -742,8 +741,8 @@ namespace InDet{ const { if(!m_curTup)return; int ipnt=0; - for(auto vrt : all2TrVrt) { - if(ipnt==100)break; + for(auto & vrt : all2TrVrt) { + if(ipnt==DevTuple::maxNTrk)break; m_curTup->VrtDist2D[ipnt]=vrt.FitVertex.perp(); m_curTup->VrtSig3D[ipnt]=vrt.Signif3D; m_curTup->VrtSig2D[ipnt]=vrt.Signif2D; @@ -752,10 +751,83 @@ namespace InDet{ m_curTup->mass[ipnt]=vrt.Momentum.M(); m_curTup->Chi2[ipnt]=vrt.Chi2; m_curTup->badVrt[ipnt]=vrt.badVrt; + m_curTup->VrtDR[ipnt]=vrt.dRSVPV; ipnt++; m_curTup->nVrt=ipnt; } } + void InDetVKalVxInJetTool::fillNVrtNTup(std::vector<WrkVrt> & VrtSet, std::vector< std::vector<float> > & trkScore, + const xAOD::Vertex & PV, const TLorentzVector & JetDir) + const + { if(!m_curTup)return; + int ipnt=0; + TLorentzVector VertexMom; + for(auto & vrt : VrtSet) { + if(ipnt==DevTuple::maxNVrt)break; + m_curTup->NVrtDist2D[ipnt]=vrt.vertex.perp(); + m_curTup->NVrtNT[ipnt]=vrt.SelTrk.size(); + m_curTup->NVrtTrkI[ipnt]=vrt.SelTrk[0]; + m_curTup->NVrtM[ipnt]=vrt.vertexMom.M(); + m_curTup->NVrtChi2[ipnt]=vrt.Chi2; + float maxW=0., sumW=0.; + for(auto trk : vrt.SelTrk){ sumW+=trkScore[trk][0]; maxW=std::max(trkScore[trk][0], maxW);} + m_curTup->NVrtMaxW[ipnt]=maxW; + m_curTup->NVrtAveW[ipnt]=sumW/vrt.SelTrk.size(); + TLorentzVector SVPV(vrt.vertex.x()-PV.x(),vrt.vertex.y()-PV.y(),vrt.vertex.z()-PV.z(),1.); + m_curTup->NVrtDR[ipnt]=JetDir.DeltaR(SVPV); + VertexMom += vrt.vertexMom; + ipnt++; m_curTup->nNVrt=ipnt; + } + m_curTup->TotM=VertexMom.M(); + } + + + int InDetVKalVxInJetTool::getIdHF(const xAOD::TrackParticle* TP ) const { + if( TP->isAvailable< ElementLink< xAOD::TruthParticleContainer> >( "truthParticleLink") ) { + const ElementLink<xAOD::TruthParticleContainer>& tplink = + TP->auxdata< ElementLink< xAOD::TruthParticleContainer > >("truthParticleLink"); + if( !tplink.isValid() ) return 0; + if( TP->auxdata< float >( "truthMatchProbability" ) < 0.75 ) return 0; + if( (*tplink)->barcode() > 200000) return 0; + if( (*tplink)->hasProdVtx()){ + if( (*tplink)->prodVtx()->nIncomingParticles()==1){ + int PDGID1=0, PDGID2=0, PDGID3=0; + const xAOD::TruthParticle * parTP1=getPreviousParent(*tplink, PDGID1); + const xAOD::TruthParticle * parTP2=0; + int noBC1=notFromBC(PDGID1); + if(noBC1) parTP2 = getPreviousParent(parTP1, PDGID2); + int noBC2=notFromBC(PDGID2); + if(noBC2 && parTP2) getPreviousParent(parTP2, PDGID3); + int noBC3=notFromBC(PDGID3); + if(noBC1 && noBC2 && noBC3)return 0; + return 1; //This is a reconstructed track from B/C decays + } } } + return 0; + } + + int InDetVKalVxInJetTool::notFromBC(int PDGID) const { + int noBC=0; + if(PDGID<=0)return 1; + if(PDGID>600 && PDGID<4000)noBC=1; + if(PDGID<400 || PDGID>5600)noBC=1; + if(PDGID==513 || PDGID==523 || PDGID==533 || PDGID==543)noBC=1; //Remove tracks from B* (they are in PV) + if(PDGID==5114 || PDGID==5214 || PDGID==5224 || PDGID==5314 || PDGID==5324)noBC=1; //Remove tracks from B_Barions* (they are in PV) + //if(PDGID==413 || PDGID==423 || PDGID==433 )continue; //Keep tracks from D* (they are from B vertex) + //if(PDGID==4114 || PDGID==4214 || PDGID==4224 || PDGID==4314 || PDGID==4324)continue; + return noBC; + } + const xAOD::TruthParticle * InDetVKalVxInJetTool::getPreviousParent(const xAOD::TruthParticle * child, int & ParentPDG) const { + ParentPDG=0; + if( child->hasProdVtx() ){ + if( child->prodVtx()->nIncomingParticles()==1 ){ + ParentPDG = abs((*(child->prodVtx()->incomingParticleLinks())[0])->pdgId()); + return *(child->prodVtx()->incomingParticleLinks())[0]; + } + } + return 0; + } + + int InDetVKalVxInJetTool::getG4Inter(const xAOD::TrackParticle* TP ) const { if( TP->isAvailable< ElementLink< xAOD::TruthParticleContainer> >( "truthParticleLink") ) { const ElementLink<xAOD::TruthParticleContainer>& tplink = @@ -772,6 +844,7 @@ namespace InDet{ } else { return 1; } return 0; } + int InDetVKalVxInJetTool::getIdHF(const Rec::TrackParticle*) const { return 0; } int InDetVKalVxInJetTool::getG4Inter(const Rec::TrackParticle* ) const { return 0; } int InDetVKalVxInJetTool::getMCPileup(const Rec::TrackParticle* ) const { return 0; } diff --git a/LArCalorimeter/LArDigitization/CMakeLists.txt b/LArCalorimeter/LArDigitization/CMakeLists.txt index 9b3c45232fe45e799ceb60086519b1a3668cbd7a..2f5f12c3d6d3f69376f5f7d2b154bbcce4875755 100644 --- a/LArCalorimeter/LArDigitization/CMakeLists.txt +++ b/LArCalorimeter/LArDigitization/CMakeLists.txt @@ -11,9 +11,7 @@ atlas_depends_on_subdirs( PUBLIC Calorimeter/CaloIdentifier Control/AthenaBaseComps Control/AthenaKernel - Control/CLIDSvc Control/PileUpTools - Control/SGTools Control/StoreGate DetectorDescription/Identifier Event/xAOD/xAODEventInfo @@ -39,7 +37,7 @@ atlas_add_library( LArDigitizationLib PUBLIC_HEADERS LArDigitization PRIVATE_INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} ${HEPMC_INCLUDE_DIRS} PRIVATE_DEFINITIONS ${CLHEP_DEFINITIONS} - LINK_LIBRARIES CaloIdentifier AthenaBaseComps AthenaKernel SGTools Identifier xAODEventInfo GaudiKernel LArIdentifier LArRawEvent LArSimEvent LArRecConditions LArRawConditions CaloDetDescrLib PileUpToolsLib StoreGateLib SGtests LArCablingLib + LINK_LIBRARIES CaloIdentifier AthenaBaseComps AthenaKernel Identifier xAODEventInfo GaudiKernel LArIdentifier LArRawEvent LArSimEvent LArRecConditions LArRawConditions CaloDetDescrLib PileUpToolsLib StoreGateLib SGtests LArCablingLib PRIVATE_LINK_LIBRARIES ${CLHEP_LIBRARIES} ${HEPMC_LIBRARIES} GeneratorObjects ) atlas_add_component( LArDigitization diff --git a/LArCalorimeter/LArDigitization/LArDigitization/LArHitEMap.h b/LArCalorimeter/LArDigitization/LArDigitization/LArHitEMap.h index 9df49fb14ba7066c208c62f4df972f3238dc49ad..d0e018ff36d947a26b25f334a4a43286fd145d80 100755 --- a/LArCalorimeter/LArDigitization/LArDigitization/LArHitEMap.h +++ b/LArCalorimeter/LArDigitization/LArDigitization/LArHitEMap.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ #ifndef LARDIGITIZATION_LARHITEMAP_H @@ -17,7 +17,7 @@ #include "CaloIdentifier/LArFCAL_ID.h" #include "CaloDetDescr/CaloDetDescrManager.h" #include "LArRawEvent/LArDigit.h" -#include "CLIDSvc/CLASS_DEF.h" +#include "AthenaKernel/CLASS_DEF.h" class ISvcLocator; class LArCablingService; diff --git a/LArCalorimeter/LArRawEvent/LArRawEvent/LArDigitContainer.h b/LArCalorimeter/LArRawEvent/LArRawEvent/LArDigitContainer.h index dc7f357b189a3275343d909e10238bf940147b0f..a5d60d521f39968910191ba0646c60a8e55c5d04 100755 --- a/LArCalorimeter/LArRawEvent/LArRawEvent/LArDigitContainer.h +++ b/LArCalorimeter/LArRawEvent/LArRawEvent/LArDigitContainer.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ #ifndef LARDIGITCONTAINER_H @@ -7,6 +7,7 @@ #include "AthContainers/DataVector.h" #include "AthenaKernel/CLASS_DEF.h" +#include "AthenaKernel/BaseInfo.h" #include "LArRawEvent/LArDigit.h" /** @@ -47,5 +48,6 @@ private: CLASS_DEF(LArDigitContainer,2711,0) +SG_BASE(LArDigitContainer, DataVector<LArDigit> ); #endif diff --git a/LArCalorimeter/LArRecUtils/share/LArFCalTowerBuilderTool.ref b/LArCalorimeter/LArRecUtils/share/LArFCalTowerBuilderTool.ref index 97e6dc7bdd5cc2f1fcc596216c9bcd595f26c9e7..a311d5364e1726d9746bc304d94c7226e0f03abc 100644 --- a/LArCalorimeter/LArRecUtils/share/LArFCalTowerBuilderTool.ref +++ b/LArCalorimeter/LArRecUtils/share/LArFCalTowerBuilderTool.ref @@ -1,14 +1,14 @@ -Thu Nov 1 09:30:37 CET 2018 +Thu Dec 6 05:33:31 CET 2018 Preloading tcmalloc_minimal.so Py:Athena INFO including file "AthenaCommon/Preparation.py" -Py:Athena INFO using release [WorkDir-22.0.1] [x86_64-slc6-gcc62-opt] [LArFCalTowerBuilderTool.ref.update/71ccf230a5] -- built on [2018-11-01T0926] +Py:Athena INFO using release [AthenaWorkDir-22.0.1] [x86_64-slc6-gcc62-opt] [atlas-work3/fa0fd6d0989] -- built on [2018-12-06T0504] Py:Athena INFO including file "AthenaCommon/Atlas.UnixStandardJob.py" Py:Athena INFO executing ROOT6Setup Py:Athena INFO including file "AthenaCommon/Execution.py" Py:Athena INFO including file "LArRecUtils/LArFCalTowerBuilderTool_test.py" SetGeometryVersion.py obtained major release version 22 Py:Athena INFO including file "IdDictDetDescrCnv/IdDictDetDescrCnv_joboptions.py" -Py:ConfigurableDb INFO Read module info for 5402 configurables from 4 genConfDb files +Py:ConfigurableDb INFO Read module info for 5473 configurables from 53 genConfDb files Py:ConfigurableDb INFO No duplicates have been found: that's good ! EventInfoMgtInit: Got release version Athena-22.0.1 Py:IOVDbSvc.CondDB INFO Setting up conditions DB access to instance OFLP200 @@ -22,8 +22,8 @@ Py:Athena INFO including file "AthenaCommon/runbatch.py" ApplicationMgr INFO Updating Gaudi::PluginService::SetDebug(level) to level= 'PluginDebugLevel':0 ApplicationMgr SUCCESS ==================================================================================================================================== - Welcome to ApplicationMgr (GaudiCoreSvc v30r3) - running on pcaz004.cern.ch on Thu Nov 1 09:30:46 2018 + Welcome to ApplicationMgr (GaudiCoreSvc v30r5) + running on lxplus077.cern.ch on Thu Dec 6 05:33:48 2018 ==================================================================================================================================== ApplicationMgr INFO Successfully loaded modules : AthenaServices ApplicationMgr INFO Application Manager Configured successfully @@ -40,8 +40,8 @@ PoolSvc INFO io_register[PoolSvc](xmlcatalog_file:PoolFileCatalog.x PoolSvc INFO Set connectionsvc retry/timeout/IDLE timeout to 'ConnectionRetrialPeriod':300/ 'ConnectionRetrialTimeOut':3600/ 'ConnectionTimeOut':5 seconds with connection cleanup disabled PoolSvc INFO Frontier compression level set to 5 DBReplicaSvc INFO Frontier server at (serverurl=http://atlasfrontier-local.cern.ch:8000/atlr)(serverurl=http://atlasfrontier-ai.cern.ch:8000/atlr)(serverurl=http://lcgft-atlas.gridpp.rl.ac.uk:3128/frontierATLAS)(serverurl=http://ccfrontier.in2p3.fr:23128/ccin2p3-AtlasFrontier)(proxyurl=http://ca-proxy.cern.ch:3128)(proxyurl=http://ca-proxy-meyrin.cern.ch:3128)(proxyurl=http://ca-proxy-wigner.cern.ch:3128)(proxyurl=http://atlasbpfrontier.cern.ch:3127)(proxyurl=http://atlasbpfrontier.fnal.gov:3127) will be considered for COOL data -DBReplicaSvc INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-10-30T2256/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config -DBReplicaSvc INFO Total of 10 servers found for host pcaz004.cern.ch [ATLF ATLAS_COOLPROD atlas_dd ATLAS_CONFIG INT8R INTR ATONR_COOL ATONR_CONF DEVDB11 ATLF ] +DBReplicaSvc INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2300/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config +DBReplicaSvc INFO Total of 10 servers found for host lxplus077.cern.ch [ATLF ATLAS_COOLPROD atlas_dd ATLAS_CONFIG INT8R INTR ATONR_COOL ATONR_CONF DEVDB11 ATLF ] PoolSvc INFO Successfully setup replica sorting algorithm PoolSvc INFO Setting up APR FileCatalog and Streams PoolSvc WARNING Unable to locate catalog for prfile:poolcond/PoolCat_oflcond.xml check your ATLAS_POOLCOND_PATH and DATAPATH variables @@ -50,12 +50,11 @@ PoolSvc INFO Resolved path (via ATLAS_POOLCOND_PATH) is /cvmfs/atla PoolSvc INFO POOL WriteCatalog is xmlcatalog_file:PoolFileCatalog.xml DbSession INFO Open DbSession Domain[ROOT_All] INFO > Access DbDomain READ [ROOT_All] -MetaDataSvc INFO Found MetaDataTools = PrivateToolHandleArray([]) IOVDbSvc INFO Opened read transaction for POOL PersistencySvc IOVDbSvc INFO Only 5 POOL conditions files will be open at once IOVDbSvc INFO Cache alignment will be done in 3 slices IOVDbSvc INFO Global tag: OFLCOND-SDR-BS14T-IBL-06 set from joboptions -IOVDbSvc INFO Read from meta data only for folder /TagInfo +IOVDbFolder INFO Read from meta data only for folder /TagInfo IOVDbSvc INFO Initialised with 3 connections and 7 folders IOVDbSvc INFO Service IOVDbSvc initialised successfully IOVDbSvc INFO preLoadAddresses: Removing folder /TagInfo. It should only be in the file meta data and was not found. @@ -71,7 +70,7 @@ IOVDbSvc INFO Added taginfo remove for /CALO/Ofl/Identifier/CaloTTOn IOVDbSvc INFO Added taginfo remove for /CALO/Ofl/Identifier/CaloTTPpmRxIdMapAtlas IOVDbSvc INFO Added taginfo remove for /LAR/LArCellPositionShift IOVDbSvc INFO Added taginfo remove for /LAR/Identifier/LArTTCellMapAtlas -ClassIDSvc INFO getRegistryEntries: read 2132 CLIDRegistry entries for module ALL +ClassIDSvc INFO getRegistryEntries: read 2134 CLIDRegistry entries for module ALL ClassIDSvc INFO getRegistryEntries: read 17 CLIDRegistry entries for module ALL ClassIDSvc INFO getRegistryEntries: read 18 CLIDRegistry entries for module ALL DetDescrCnvSvc INFO initializing @@ -165,7 +164,7 @@ TileDddbManager INFO n_tileSwitches = 1 ClassIDSvc INFO getRegistryEntries: read 213 CLIDRegistry entries for module ALL CaloIDHelper_ID... INFO in createObj: creating a TileID helper object in the detector store AtlasDetectorID INFO initialize_from_dictionary - OK -TileNeighbour INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-10-30T2256/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/TileNeighbour_reduced.txt +TileNeighbour INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2300/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/TileNeighbour_reduced.txt TileHWIDDetDesc... INFO in createObj: creating a TileHWID helper object in the detector store TileHWID INFO initialize_from_dictionary AtlasDetectorID INFO initialize_from_dictionary - OK @@ -177,9 +176,9 @@ CaloIDHelper_ID... INFO in createObj: creating a LArHEC_ID helper object in th AtlasDetectorID INFO initialize_from_dictionary - OK CaloIDHelper_ID... INFO in createObj: creating a LArFCAL_ID helper object in the detector store AtlasDetectorID INFO initialize_from_dictionary - OK -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-10-30T2256/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/FCal2DNeighbors-April2011.txt -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-10-30T2256/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/FCal3DNeighborsNext-April2011.txt -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-10-30T2256/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/FCal3DNeighborsPrev-April2011.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2300/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/FCal2DNeighbors-April2011.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2300/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/FCal3DNeighborsNext-April2011.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2300/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/FCal3DNeighborsPrev-April2011.txt CaloIDHelper_ID... INFO in createObj: creating a LArMiniFCAL_ID helper object in the detector store AtlasDetectorID INFO initialize_from_dictionary - OK LArMiniFCAL_ID INFO initialize_from_dict - LArCalorimeter dictionary does NOT contain miniFCAL description. Unable to initialize LArMiniFCAL_ID. @@ -190,7 +189,7 @@ AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version Athe CondInputLoader INFO Initializing CondInputLoader... CondInputLoader INFO Adding base classes: CondInputLoader INFO Will create WriteCondHandle dependencies for the following DataObjects: -ClassIDSvc INFO getRegistryEntries: read 11142 CLIDRegistry entries for module ALL +ClassIDSvc INFO getRegistryEntries: read 8831 CLIDRegistry entries for module ALL CaloIdMgrDetDes... INFO in createObj: creating a CaloDescrManager object in the detector store CaloIDHelper_ID... INFO in createObj: creating a CaloDM_ID helper object in the detector store CaloDM_ID INFO initialize_from_dictionary @@ -208,12 +207,12 @@ CaloIDHelper_ID... INFO in createObj: creating a LArHEC_SuperCell_ID helper ob AtlasDetectorID INFO initialize_from_dictionary - OK CaloIDHelper_ID... INFO in createObj: creating a LArFCAL_SuperCell_ID helper object in the detector store AtlasDetectorID INFO initialize_from_dictionary - OK -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-10-30T2256/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/FCalSuperCells2DNeighborsNew-April2014.txt -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-10-30T2256/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/FCalSuperCells3DNeighborsNextNew-April2014.txt -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-10-30T2256/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/FCalSuperCells3DNeighborsPrevNew-April2014.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2300/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/FCalSuperCells2DNeighborsNew-April2014.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2300/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/FCalSuperCells3DNeighborsNextNew-April2014.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2300/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/FCalSuperCells3DNeighborsPrevNew-April2014.txt CaloIDHelper_ID... INFO in createObj: creating a Tile_SuperCell_ID helper object in the detector store AtlasDetectorID INFO initialize_from_dictionary - OK -TileNeighbour INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-10-30T2256/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/TileSuperCellNeighbour.txt +TileNeighbour INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2300/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/TileSuperCellNeighbour.txt AtlasDetectorID INFO initialize_from_dictionary - OK CaloIdMgrDetDes... INFO Finished CaloIdMgrDetDes... INFO Initializing CaloIdMgr from values in CaloIdMgrDetDescrCnv @@ -226,12 +225,10 @@ EventPersistenc... INFO Added successfully Conversion service:AthenaPoolCnvSvc EventPersistenc... INFO Added successfully Conversion service:TagInfoMgr ClassIDSvc INFO getRegistryEntries: read 109 CLIDRegistry entries for module ALL IOVDbSvc INFO Opening COOL connection for COOLOFL_LAR/OFLP200 -IOVDbSvc INFO HVS tag OFLCOND-SDR-BS14T-IBL-06 resolved to LARAlign-mc11-00 for folder /LAR/Align -IOVDbSvc INFO HVS tag OFLCOND-SDR-BS14T-IBL-06 resolved to LArCellPositionShift-ideal for folder /LAR/LArCellPositionShift -IOVDbSvc INFO HVS tag OFLCOND-SDR-BS14T-IBL-06 resolved to LARIdentifierLArTTCellMapAtlas-HadFcalFix2 for folder /LAR/Identifier/LArTTCellMapAtlas +IOVDbFolder INFO HVS tag OFLCOND-SDR-BS14T-IBL-06 resolved to LARAlign-mc11-00 for folder /LAR/Align +IOVDbFolder INFO HVS tag OFLCOND-SDR-BS14T-IBL-06 resolved to LArCellPositionShift-ideal for folder /LAR/LArCellPositionShift +IOVDbFolder INFO HVS tag OFLCOND-SDR-BS14T-IBL-06 resolved to LARIdentifierLArTTCellMapAtlas-HadFcalFix2 for folder /LAR/Identifier/LArTTCellMapAtlas IOVDbSvc INFO Disconnecting from COOLOFL_LAR/OFLP200 -DbSession INFO Open DbSession -Domain[ROOT_All] INFO > Access DbDomain READ [ROOT_All] Domain[ROOT_All] INFO -> Access DbDatabase READ [ROOT_All] 06C9EAE8-6F5B-E011-BAAA-003048F0E7AC Domain[ROOT_All] INFO /cvmfs/atlas-condb.cern.ch/repo/conditions/cond09/cond09_mc.000029.gen.COND/cond09_mc.000029.gen.COND._0002.pool.root RootDatabase.open INFO /cvmfs/atlas-condb.cern.ch/repo/conditions/cond09/cond09_mc.000029.gen.COND/cond09_mc.000029.gen.COND._0002.pool.root File version:52200 @@ -6648,22 +6645,21 @@ Domain[ROOT_All] INFO -> Deaccess DbDatabase READ [ROOT_All] 06C9EAE /cvmfs/atlas-co... INFO Database being retired... Domain[ROOT_All] INFO -> Deaccess DbDatabase READ [ROOT_All] 8667C6F2-1559-DE11-A611-000423D9A21A Domain[ROOT_All] INFO > Deaccess DbDomain READ [ROOT_All] -Domain[ROOT_All] INFO > Deaccess DbDomain READ [ROOT_All] ApplicationMgr INFO Application Manager Stopped successfully IncidentProcAlg1 INFO Finalize CondInputLoader INFO Finalizing CondInputLoader... IncidentProcAlg2 INFO Finalize IdDictDetDescrCnv INFO in finalize -IOVDbSvc INFO Folder /LAR/Align (PoolRef) db-read 1/1 objs/chan/bytes 1/1/170 (( 0.17 ))s -IOVDbSvc INFO Folder /CALO/Ofl/Identifier/CaloTTOnAttrIdMapAtlas (PoolRef) db-read 0/0 objs/chan/bytes 0/1/0 (( 0.00 ))s -IOVDbSvc INFO Folder /CALO/Ofl/Identifier/CaloTTOnOffIdMapAtlas (PoolRef) db-read 0/0 objs/chan/bytes 0/1/0 (( 0.00 ))s -IOVDbSvc INFO Folder /CALO/Ofl/Identifier/CaloTTPpmRxIdMapAtlas (PoolRef) db-read 0/0 objs/chan/bytes 0/1/0 (( 0.00 ))s -IOVDbSvc INFO Folder /LAR/LArCellPositionShift (PoolRef) db-read 1/1 objs/chan/bytes 1/1/195 (( 0.02 ))s -IOVDbSvc INFO Folder /LAR/Identifier/LArTTCellMapAtlas (PoolRef) db-read 1/0 objs/chan/bytes 1/1/173 (( 0.03 ))s -IOVDbSvc WARNING Folder /LAR/Identifier/LArTTCellMapAtlas is requested but no data retrieved -IOVDbSvc INFO Total payload read from COOL: 538 bytes in (( 0.23 ))s +IOVDbFolder INFO Folder /LAR/Align (PoolRef) db-read 1/1 objs/chan/bytes 1/1/170 (( 0.14 ))s +IOVDbFolder INFO Folder /CALO/Ofl/Identifier/CaloTTOnAttrIdMapAtlas (PoolRef) db-read 0/0 objs/chan/bytes 0/1/0 (( 0.00 ))s +IOVDbFolder INFO Folder /CALO/Ofl/Identifier/CaloTTOnOffIdMapAtlas (PoolRef) db-read 0/0 objs/chan/bytes 0/1/0 (( 0.00 ))s +IOVDbFolder INFO Folder /CALO/Ofl/Identifier/CaloTTPpmRxIdMapAtlas (PoolRef) db-read 0/0 objs/chan/bytes 0/1/0 (( 0.00 ))s +IOVDbFolder INFO Folder /LAR/LArCellPositionShift (PoolRef) db-read 1/1 objs/chan/bytes 1/1/195 (( 0.03 ))s +IOVDbFolder INFO Folder /LAR/Identifier/LArTTCellMapAtlas (PoolRef) db-read 1/0 objs/chan/bytes 1/1/173 (( 0.02 ))s +IOVDbFolder WARNING Folder /LAR/Identifier/LArTTCellMapAtlas is requested but no data retrieved +IOVDbSvc INFO bytes in (( 0.19 ))s IOVDbSvc INFO Connection sqlite://;schema=mycool.db;dbname=OFLP200 : nConnect: 0 nFolders: 0 ReadTime: (( 0.00 ))s -IOVDbSvc INFO Connection COOLOFL_LAR/OFLP200 : nConnect: 2 nFolders: 3 ReadTime: (( 0.23 ))s +IOVDbSvc INFO Connection COOLOFL_LAR/OFLP200 : nConnect: 2 nFolders: 3 ReadTime: (( 0.19 ))s IOVDbSvc INFO Connection COOLOFL_CALO/OFLP200 : nConnect: 1 nFolders: 3 ReadTime: (( 0.00 ))s AthDictLoaderSvc INFO in finalize... ToolSvc INFO Removing all tools created by ToolSvc @@ -6671,8 +6667,8 @@ ToolSvc INFO Removing all tools created by ToolSvc *****Chrono***** INFO The Final CPU consumption ( Chrono ) Table (ordered) *****Chrono***** INFO **************************************************************************************************** cObjR_ALL INFO Time User : Tot= 480 [ms] Ave/Min/Max= 240(+- 230)/ 10/ 470 [ms] #= 2 -cObj_ALL INFO Time User : Tot= 0.58 [s] Ave/Min/Max= 0.29(+- 0.26)/ 0.03/ 0.55 [s] #= 2 -ChronoStatSvc INFO Time User : Tot= 3.18 [s] #= 1 +cObj_ALL INFO Time User : Tot= 0.58 [s] Ave/Min/Max= 0.29(+- 0.25)/ 0.04/ 0.54 [s] #= 2 +ChronoStatSvc INFO Time User : Tot= 3.84 [s] #= 1 *****Chrono***** INFO **************************************************************************************************** ChronoStatSvc.f... INFO Service finalized successfully ApplicationMgr INFO Application Manager Finalized successfully diff --git a/LArCalorimeter/LArTest/LArConditionsTest/CMakeLists.txt b/LArCalorimeter/LArTest/LArConditionsTest/CMakeLists.txt index 60d7b422c35aee98ed3c9cb2b3e7139e6ccbb0ce..a29df7acb537d836f9a4dccc51349bece391ff9a 100644 --- a/LArCalorimeter/LArTest/LArConditionsTest/CMakeLists.txt +++ b/LArCalorimeter/LArTest/LArConditionsTest/CMakeLists.txt @@ -61,7 +61,7 @@ function (larconditions_run_test testName) @ONLY ) atlas_add_test( ${testName} SCRIPT ${CMAKE_CURRENT_BINARY_DIR}/larconditions_${testName}.sh - ENVIRONMENT ATLAS_REFERENCE_TAG=LArConditionsTest/LArConditionsTest-01-00-11 + ENVIRONMENT ATLAS_REFERENCE_TAG=LArConditionsTest/LArConditionsTest-01-00-12 PROPERTIES TIMEOUT 1200 EXTRA_PATTERNS "Data source lookup|Resolved path|Failed to connect to service|Release number|Sorting algorithm|Failed to connect|Failure while attempting to connect|Reading file|^CORAL/|being retired|^Domain|INFO GeoModelSvc|locate catalog|Cache alignment|COOL_DISABLE|Failed to get ContainerHandle|^RalSessionMgr Info|^RelationalDatabase Info|Bootstrap.py" ) diff --git a/PhysicsAnalysis/AnalysisCommon/IsolationSelection/IsolationSelection/IIsolationCloseByCorrectionTool.h b/PhysicsAnalysis/AnalysisCommon/IsolationSelection/IsolationSelection/IIsolationCloseByCorrectionTool.h index 045472749f6fa22c5084bf914b8a042479e0dcb2..c536f1b80796af7cee8777078a771e9241a9cf0d 100644 --- a/PhysicsAnalysis/AnalysisCommon/IsolationSelection/IsolationSelection/IIsolationCloseByCorrectionTool.h +++ b/PhysicsAnalysis/AnalysisCommon/IsolationSelection/IsolationSelection/IIsolationCloseByCorrectionTool.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ #ifndef ISOLATIONSELECTION_IISOLATIONCLOSEBYCORRECTIONTOOL_H @@ -7,7 +7,9 @@ #include <PATInterfaces/CorrectionCode.h> #include <IsolationSelection/Defs.h> -#include <PATCore/TAccept.h> + +#include <PATCore/AcceptData.h> +#include <PATCore/AcceptInfo.h> #include <xAODEgamma/ElectronContainer.h> #include <xAODEgamma/PhotonContainer.h> @@ -26,20 +28,33 @@ namespace CP { DirectCaloClusters = -1, ParticleCaloCorrection = 0, CaloCorrectionExtCore = 1, CaloCorrectionVarAnulus = 2 }; - // This function calculates and applies (the particle is not redecorated) the corrections for close-by objects for each isolation variables and tests whether the particle passes the isolation working point after the corrections. + // This function calculates and applies (the particle is not redecorated) the corrections + // for close-by objects for each isolation variables and tests whether the particle passes the isolation working point after the corrections. // Note that to use this functionality, a IsolationSelectionTool must have been passed to the tool (which must have been intialised indicating which isolation working point to use). - // The result returned is a TAccept object which is the decision made by the tool with respect to the particle passing the working point. - virtual Root::TAccept acceptCorrected(const xAOD::IParticle& x, const std::vector<const xAOD::IParticle*>& closePar, int topoetconeModel = TopoConeCorrectionModel::DirectCaloClusters) const = 0; - virtual Root::TAccept acceptCorrected(const xAOD::IParticle& x, const xAOD::IParticleContainer& closePar, int topoetconeModel = TopoConeCorrectionModel::DirectCaloClusters) const = 0; + // The result returned is a AcceptData object which is the decision made by the tool with respect to the particle passing the working point. + virtual asg::AcceptData acceptCorrected(const xAOD::IParticle& x, + const std::vector<const xAOD::IParticle*>& closePar, + int topoetconeModel = TopoConeCorrectionModel::DirectCaloClusters) const = 0; + virtual asg::AcceptData acceptCorrected(const xAOD::IParticle& x, + const xAOD::IParticleContainer& closePar, + int topoetconeModel = TopoConeCorrectionModel::DirectCaloClusters) const = 0; // This function calculates the values of the corrections for close-by objects to be applied to the isolation variables (without redecorating the particles). // The corrections are returned in a vector (one correction per isolation type provided). // This function is intended for experts only who want to check the effects of the corrections. - virtual CorrectionCode getCloseByCorrection(std::vector<float>& corrections, const xAOD::IParticle& par, const std::vector<xAOD::Iso::IsolationType>& types, const std::vector<const xAOD::IParticle*>& closePar, int topoetconeModel = TopoConeCorrectionModel::DirectCaloClusters) const = 0; - virtual CorrectionCode getCloseByCorrection(std::vector<float>& corrections, const xAOD::IParticle& par, const std::vector<xAOD::Iso::IsolationType>& types, const xAOD::IParticleContainer& closePar, int topoetconeModel = TopoConeCorrectionModel::DirectCaloClusters) const=0; + virtual CorrectionCode getCloseByCorrection(std::vector<float>& corrections, const xAOD::IParticle& par, + const std::vector<xAOD::Iso::IsolationType>& types, + const std::vector<const xAOD::IParticle*>& closePar, int topoetconeModel = TopoConeCorrectionModel::DirectCaloClusters) const = 0; + + virtual CorrectionCode getCloseByCorrection(std::vector<float>& corrections, + const xAOD::IParticle& par, + const std::vector<xAOD::Iso::IsolationType>& types, + const xAOD::IParticleContainer& closePar, int topoetconeModel = TopoConeCorrectionModel::DirectCaloClusters) const=0; - virtual CorrectionCode getCloseByIsoCorrection(xAOD::ElectronContainer* Electrons = nullptr, xAOD::MuonContainer* Muons = nullptr, xAOD::PhotonContainer* Photons = nullptr, int topoetconeModel = TopoConeCorrectionModel::DirectCaloClusters) const=0; - virtual CorrectionCode subtractCloseByContribution(xAOD::IParticle& x, const xAOD::IParticleContainer& closebyPar, int topoetconeModel = TopoConeCorrectionModel::DirectCaloClusters) const= 0; + virtual CorrectionCode getCloseByIsoCorrection(xAOD::ElectronContainer* Electrons = nullptr, xAOD::MuonContainer* Muons = nullptr, + xAOD::PhotonContainer* Photons = nullptr, int topoetconeModel = TopoConeCorrectionModel::DirectCaloClusters) const=0; + virtual CorrectionCode subtractCloseByContribution(xAOD::IParticle& x, const xAOD::IParticleContainer& closebyPar, + int topoetconeModel = TopoConeCorrectionModel::DirectCaloClusters) const= 0; virtual float getOriginalIsolation(const xAOD::IParticle& P, IsoType type) const=0; virtual float getOriginalIsolation(const xAOD::IParticle* P, IsoType type) const=0; diff --git a/PhysicsAnalysis/AnalysisCommon/IsolationSelection/IsolationSelection/IIsolationSelectionTool.h b/PhysicsAnalysis/AnalysisCommon/IsolationSelection/IsolationSelection/IIsolationSelectionTool.h index b4237c7d4586d8e87f7647d0fd66f5f3c806868c..5c24052e99dd85d7a3e74d982fdc7d058f1a07b2 100644 --- a/PhysicsAnalysis/AnalysisCommon/IsolationSelection/IsolationSelection/IIsolationSelectionTool.h +++ b/PhysicsAnalysis/AnalysisCommon/IsolationSelection/IsolationSelection/IIsolationSelectionTool.h @@ -1,10 +1,9 @@ // Dear emacs, this is -*- c++ -*- /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ -// $Id: IIsolationSelectionTool.h 764207 2016-07-25 18:16:03Z alesage $ // #ifndef ISOLATIONSELECTION_IISOLATIONSELECTIONTOOL_H // #define ISOLATIONSELECTION_IISOLATIONSELECTIONTOOL_H #ifndef ISOLATIONSELECTION_IISOLATIONSELECTIONTOOL_H @@ -12,8 +11,8 @@ // Framework include(s): #include "AsgTools/IAsgTool.h" -#include "PATCore/TAccept.h" - +#include "PATCore/AcceptData.h" +#include "PATCore/AcceptInfo.h" // EDM include(s): #include "xAODPrimitives/IsolationType.h" #include "xAODEgamma/Photon.h" @@ -44,17 +43,17 @@ namespace CP { public: // Cut on object - virtual const Root::TAccept& accept(const xAOD::Photon& x) const = 0; - virtual const Root::TAccept& accept(const xAOD::Electron& x) const = 0; - virtual const Root::TAccept& accept(const xAOD::Muon& x) const = 0; - virtual const Root::TAccept& accept(const strObj& x) const = 0; - virtual const Root::TAccept& accept(const xAOD::IParticle& x) const = 0; + virtual const asg::AcceptData accept(const xAOD::Photon& x) const = 0; + virtual const asg::AcceptData accept(const xAOD::Electron& x) const = 0; + virtual const asg::AcceptData accept(const xAOD::Muon& x) const = 0; + virtual const asg::AcceptData accept(const strObj& x) const = 0; + virtual const asg::AcceptData accept(const xAOD::IParticle& x) const = 0; virtual StatusCode setIParticleCutsFrom(xAOD::Type::ObjectType ObjType) = 0; - virtual const Root::TAccept& getPhotonTAccept() const = 0; - virtual const Root::TAccept& getElectronTAccept() const = 0; - virtual const Root::TAccept& getMuonTAccept() const = 0; - virtual const Root::TAccept& getObjTAccept() const = 0; + virtual const asg::AcceptInfo& getPhotonAcceptInfo() const = 0; + virtual const asg::AcceptInfo& getElectronAcceptInfo() const = 0; + virtual const asg::AcceptInfo& getMuonAcceptInfo() const = 0; + virtual const asg::AcceptInfo& getObjAcceptInfo() const = 0; virtual const std::vector<IsolationWP*>& getMuonWPs() const=0; virtual const std::vector<IsolationWP*>& getElectronWPs() const=0; diff --git a/PhysicsAnalysis/AnalysisCommon/IsolationSelection/IsolationSelection/IsolationCloseByCorrectionTool.h b/PhysicsAnalysis/AnalysisCommon/IsolationSelection/IsolationSelection/IsolationCloseByCorrectionTool.h index 7aa5f461a302d3e393692b664529806f74390bbc..20a06454a853e1877c03925ee62a3a70fa43d993 100644 --- a/PhysicsAnalysis/AnalysisCommon/IsolationSelection/IsolationSelection/IsolationCloseByCorrectionTool.h +++ b/PhysicsAnalysis/AnalysisCommon/IsolationSelection/IsolationSelection/IsolationCloseByCorrectionTool.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ #ifndef IsolationSelection_IsolationCloseByCorrectionTool_H @@ -56,8 +56,12 @@ namespace CP { virtual CorrectionCode getCloseByCorrection(std::vector<float>& corrections, const xAOD::IParticle& par, const std::vector<xAOD::Iso::IsolationType>& types, const std::vector<const xAOD::IParticle*>& closePar, int topoetconeModel = TopoConeCorrectionModel::DirectCaloClusters) const; virtual CorrectionCode getCloseByCorrection(std::vector<float>& corrections, const xAOD::IParticle& par, const std::vector<xAOD::Iso::IsolationType>& types, const xAOD::IParticleContainer& closePar, int topoetconeModel = TopoConeCorrectionModel::DirectCaloClusters) const; - virtual Root::TAccept acceptCorrected(const xAOD::IParticle& x, const std::vector<const xAOD::IParticle*>& closePar, int topoetconeModel = TopoConeCorrectionModel::DirectCaloClusters) const; - virtual Root::TAccept acceptCorrected(const xAOD::IParticle& x, const xAOD::IParticleContainer& closePar, int topoetconeModel = TopoConeCorrectionModel::DirectCaloClusters) const; + virtual asg::AcceptData acceptCorrected(const xAOD::IParticle& x, + const std::vector<const xAOD::IParticle*>& closePar, + int topoetconeModel = TopoConeCorrectionModel::DirectCaloClusters) const; + virtual asg::AcceptData acceptCorrected(const xAOD::IParticle& x, + const xAOD::IParticleContainer& closePar, + int topoetconeModel = TopoConeCorrectionModel::DirectCaloClusters) const; virtual CorrectionCode getCloseByIsoCorrection(xAOD::ElectronContainer* Electrons = nullptr, xAOD::MuonContainer* Muons = nullptr, xAOD::PhotonContainer* Photons = nullptr, int topoetconeModel = TopoConeCorrectionModel::DirectCaloClusters) const; virtual CorrectionCode subtractCloseByContribution(xAOD::IParticle& x, const xAOD::IParticleContainer& closebyPar, int topoetconeModel = TopoConeCorrectionModel::DirectCaloClusters) const; @@ -167,6 +171,7 @@ namespace CP { //Functionallity to backup the original cone variables if needed std::string m_backup_prefix; + asg::AcceptInfo m_corrAcceptInfo; asg::AnaToolHandle<InDet::IInDetTrackSelectionTool> m_trkselTool; mutable IsoHelperMap m_isohelpers; diff --git a/PhysicsAnalysis/AnalysisCommon/IsolationSelection/IsolationSelection/IsolationSelectionTool.h b/PhysicsAnalysis/AnalysisCommon/IsolationSelection/IsolationSelection/IsolationSelectionTool.h index debc23463841004e8bba9b62cb6ed03fb26c5f92..e2294c37154108881090d16224ea539fbe2395a7 100644 --- a/PhysicsAnalysis/AnalysisCommon/IsolationSelection/IsolationSelection/IsolationSelectionTool.h +++ b/PhysicsAnalysis/AnalysisCommon/IsolationSelection/IsolationSelection/IsolationSelectionTool.h @@ -1,10 +1,9 @@ // Dear emacs, this is -*- c++ -*- /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ -// $Id: IsolationSelectionTool.h 704447 2015-10-29 12:00:39Z jdevivi $ #ifndef ISOLATIONSELECTION_ISOLATIONSELECTIONTOOL_H #define ISOLATIONSELECTION_ISOLATIONSELECTIONTOOL_H @@ -53,16 +52,16 @@ namespace CP { enum IsoWPType { Efficiency, Cut }; - virtual const Root::TAccept& accept(const xAOD::Photon& x) const; - virtual const Root::TAccept& accept(const xAOD::Electron& x) const; - virtual const Root::TAccept& accept(const xAOD::Muon& x) const; - virtual const Root::TAccept& accept(const strObj& x) const; - virtual const Root::TAccept& accept(const xAOD::IParticle& x) const; // for tracks, and others? + virtual const asg::AcceptData accept(const xAOD::Photon& x) const; + virtual const asg::AcceptData accept(const xAOD::Electron& x) const; + virtual const asg::AcceptData accept(const xAOD::Muon& x) const; + virtual const asg::AcceptData accept(const strObj& x) const; + virtual const asg::AcceptData accept(const xAOD::IParticle& x) const; // for tracks, and others? - virtual const Root::TAccept& getPhotonTAccept() const; - virtual const Root::TAccept& getElectronTAccept() const; - virtual const Root::TAccept& getMuonTAccept() const; - virtual const Root::TAccept& getObjTAccept() const; + virtual const asg::AcceptInfo& getPhotonAcceptInfo() const; + virtual const asg::AcceptInfo& getElectronAcceptInfo() const; + virtual const asg::AcceptInfo& getMuonAcceptInfo() const; + virtual const asg::AcceptInfo& getObjAcceptInfo() const; virtual const std::vector<IsolationWP*>& getMuonWPs() const; virtual const std::vector<IsolationWP*>& getElectronWPs() const; @@ -86,7 +85,7 @@ namespace CP { private: //same interface for xAOD::IParticle and StrObj -> use template - template<typename T> void evaluateWP(const T& x, const std::vector<IsolationWP*>& WP, Root::TAccept& accept) const; + template<typename T> void evaluateWP(const T& x, const std::vector<IsolationWP*>& WP, asg::AcceptData& accept) const; void clearWPs(std::vector<IsolationWP*>& WP); // Stupid ROOT @@ -109,15 +108,15 @@ namespace CP { std::vector<IsolationWP*> m_phWPs; std::vector<IsolationWP*> m_objWPs; - /// TAccept's - mutable Root::TAccept m_photonAccept; - mutable Root::TAccept m_electronAccept; - mutable Root::TAccept m_muonAccept; - mutable Root::TAccept m_objAccept; + ///AcceptInfo + asg::AcceptInfo m_photonAcceptInfo; + asg::AcceptInfo m_electronAcceptInfo; + asg::AcceptInfo m_muonAcceptInfo; + asg::AcceptInfo m_objAcceptInfo; /// Iparticle interface std::vector<IsolationWP*>* m_iparWPs; - mutable Root::TAccept* m_iparAccept; + asg::AcceptInfo* m_iparAcceptInfo; // for cut interpolation bool m_doInterpM, m_doInterpE; diff --git a/PhysicsAnalysis/AnalysisCommon/IsolationSelection/IsolationSelection/IsolationWP.h b/PhysicsAnalysis/AnalysisCommon/IsolationSelection/IsolationSelection/IsolationWP.h index cb32ed55b7a2f8ea71cd2a0489e751f82593aa71..890745a5ce7fdd20f079b73372ed073c18e02f03 100644 --- a/PhysicsAnalysis/AnalysisCommon/IsolationSelection/IsolationSelection/IsolationWP.h +++ b/PhysicsAnalysis/AnalysisCommon/IsolationSelection/IsolationSelection/IsolationWP.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ #ifndef ISOLATIONSELECTION_ISOLATIONWP_H @@ -7,7 +7,8 @@ #include <xAODPrimitives/tools/getIsolationAccessor.h> #include <IsolationSelection/IsolationCondition.h> -#include "PATCore/TAccept.h" +#include "PATCore/AcceptData.h" +#include "PATCore/AcceptInfo.h" #include <map> namespace CP { @@ -19,28 +20,18 @@ namespace CP { void name(const std::string &name); - const Root::TAccept& accept(const xAOD::IParticle& p) const; - const Root::TAccept& accept(const strObj& p) const; + const asg::AcceptData accept(const xAOD::IParticle& p) const; + const asg::AcceptData accept(const strObj& p) const; void addCut(IsolationCondition* cut); - const Root::TAccept& getAccept() const; + const asg::AcceptInfo& getAcceptInfo() const; const std::vector<IsolationCondition*>& conditions() const; -// void saveCutValues(bool yes = true) { -// if (yes && (!m_cutValues)) m_cutValues = new std::map<xAOD::Iso::IsolationType, float>(); -// else if ((!yes) && m_cutValues) { -// delete m_cutValues; -// } -// } -// std::map<xAOD::Iso::IsolationType, float>* cutValues() { -// return m_cutValues; -// } - private: std::string m_name; std::vector<IsolationCondition*> m_cuts; std::map<xAOD::Iso::IsolationType, float>* m_cutValues; - mutable Root::TAccept m_accept; + asg::AcceptInfo m_acceptInfo; }; } #endif // ISOLATIONSELECTION_ISOLATIONWP_H diff --git a/PhysicsAnalysis/AnalysisCommon/IsolationSelection/Root/IsolationCloseByCorrectionTool.cxx b/PhysicsAnalysis/AnalysisCommon/IsolationSelection/Root/IsolationCloseByCorrectionTool.cxx index 28ad124fb2a278656ec57ffaf6cf2e20a80c0300..a452c52b18ef6263f27445d77851c31d75d67e0f 100644 --- a/PhysicsAnalysis/AnalysisCommon/IsolationSelection/Root/IsolationCloseByCorrectionTool.cxx +++ b/PhysicsAnalysis/AnalysisCommon/IsolationSelection/Root/IsolationCloseByCorrectionTool.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ #include <IsolationSelection/IsolationCloseByCorrectionTool.h> @@ -79,8 +79,9 @@ namespace CP { } StatusCode IsolationCloseByCorrectionTool::initialize() { - - //set default properties of track selection tool, if the user hasn't configured it + m_corrAcceptInfo.addCut( "NoToolCut", "No IsolationSelectionTool" ); + m_corrAcceptInfo.addCut("castCut", "Could not cast to right Object type"); + //set default properties of track selection tool, if the user hasn't configured it if (!m_trkselTool.isUserConfigured()) { SET_DUAL_TOOL(m_trkselTool, InDet::InDetTrackSelectionTool, "TackParticleSelectionTool"); ATH_MSG_INFO("No TrackSelectionTool provided, so I will create and configure my own, called: " << m_trkselTool.name()); @@ -172,8 +173,10 @@ namespace CP { ATH_MSG_ERROR("Failed to correct the isolation of particle with pt: " << Particle->pt() / 1.e3 << " GeV" << " eta: " << Particle->eta() << " phi: " << Particle->phi()); return CorrectionCode::Error; } - if (m_dec_isoselection) m_dec_isoselection->operator()(*Particle) = m_selectorTool->accept(*Particle); - } + if (m_dec_isoselection) { + m_dec_isoselection->operator()(*Particle) = static_cast<bool>(m_selectorTool->accept(*Particle)); + } + } return CorrectionCode::Ok; } const IsoVector* IsolationCloseByCorrectionTool::getIsolationTypes(const xAOD::IParticle* particle) const { @@ -515,27 +518,32 @@ namespace CP { } } } - Root::TAccept IsolationCloseByCorrectionTool::acceptCorrected(const xAOD::IParticle& x, const xAOD::IParticleContainer& closePar, int topoetconeModel) const { - Root::TAccept accept; + + asg::AcceptData IsolationCloseByCorrectionTool::acceptCorrected(const xAOD::IParticle& x, + const xAOD::IParticleContainer& closePar, + int topoetconeModel) const { + asg::AcceptData acceptData(&m_corrAcceptInfo); if (!m_isInitialised) { ATH_MSG_WARNING("The IsolationCloseByCorrectionTool was not initialised!!!"); } if (m_selectorTool.empty()) { ATH_MSG_ERROR("Please set the IsolationSelectionTool property with a valid IsolationSelectionTool"); - accept.clear(); - if (m_dec_isoselection) m_dec_isoselection->operator()(x) = false; - return accept; + acceptData.clear(); + acceptData.setCutResult("NoToolCut", false); + if (m_dec_isoselection) {m_dec_isoselection->operator()(x) = false;} + return acceptData; } if (!getIsolationTypes(&x)) { ATH_MSG_WARNING("Could not cast particle for acceptCorrected. Will return false."); - accept.setCutResult("castCut", false); - if (m_dec_isoselection) m_dec_isoselection->operator()(x) = false; - return accept; + acceptData.setCutResult("castCut", false); + if (m_dec_isoselection) {m_dec_isoselection->operator()(x) = false;} + return acceptData; } - if (closePar.empty()) return m_selectorTool->accept(x); - - accept.clear(); + if (closePar.empty()) { + return m_selectorTool->accept(x); + } + acceptData.clear(); strObj strPar; strPar.isolationValues.resize(xAOD::Iso::numIsolationTypes); strPar.pt = x.pt(); @@ -543,22 +551,22 @@ namespace CP { strPar.type = x.type(); std::vector<float> corrections; if (getCloseByCorrection(corrections, x, *getIsolationTypes(&x), closePar, topoetconeModel) == CorrectionCode::Error) { - ATH_MSG_WARNING("Could not calculate the corrections. acceptCorrected(x) is done without the corrections."); - if (m_dec_isoselection) m_dec_isoselection->operator()(x) = m_selectorTool->accept(x); - return m_selectorTool->accept(x); + ATH_MSG_WARNING("Could not calculate the corrections. acceptCorrected(x) is done without the corrections."); + if (m_dec_isoselection) m_dec_isoselection->operator()(x) = static_cast<bool>(m_selectorTool->accept(x)); + return m_selectorTool->accept(x); } for (unsigned int i = 0; i < getIsolationTypes(&x)->size(); i++) { - const SG::AuxElement::Accessor<float> *acc = xAOD::getIsolationAccessor(getIsolationTypes(&x)->at(i)); - float old = acc->operator()(x); - ATH_MSG_DEBUG("Correcting " << xAOD::Iso::toCString(getIsolationTypes(&x)->at(i)) << " from " << old << " to " << corrections.at(i)); - strPar.isolationValues[getIsolationTypes(&x)->at(i)] = corrections.at(i); + const SG::AuxElement::Accessor<float> *acc = xAOD::getIsolationAccessor(getIsolationTypes(&x)->at(i)); + float old = acc->operator()(x); + ATH_MSG_DEBUG("Correcting " << xAOD::Iso::toCString(getIsolationTypes(&x)->at(i)) << " from " << old << " to " << corrections.at(i)); + strPar.isolationValues[getIsolationTypes(&x)->at(i)] = corrections.at(i); } - accept = m_selectorTool->accept(strPar); - if (m_dec_isoselection) m_dec_isoselection->operator()(x) = accept; - return accept; + acceptData = m_selectorTool->accept(strPar); + if (m_dec_isoselection) m_dec_isoselection->operator()(x) = static_cast<bool>(acceptData); + return acceptData; } - Root::TAccept IsolationCloseByCorrectionTool::acceptCorrected(const xAOD::IParticle& x, const std::vector<const xAOD::IParticle*>& closePar, int topoetconeModel) const { + asg::AcceptData IsolationCloseByCorrectionTool::acceptCorrected(const xAOD::IParticle& x, const std::vector<const xAOD::IParticle*>& closePar, int topoetconeModel) const { xAOD::IParticleContainer Container(SG::VIEW_ELEMENTS); for (auto&P : closePar) Container.push_back(const_cast<xAOD::IParticle*>(P)); diff --git a/PhysicsAnalysis/AnalysisCommon/IsolationSelection/Root/IsolationSelectionTool.cxx b/PhysicsAnalysis/AnalysisCommon/IsolationSelection/Root/IsolationSelectionTool.cxx index 0b67946f104d626911b8c858946587de509bbef1..c04e13ce2179b7ae4d6c6594d13229da9605c5b5 100644 --- a/PhysicsAnalysis/AnalysisCommon/IsolationSelection/Root/IsolationSelectionTool.cxx +++ b/PhysicsAnalysis/AnalysisCommon/IsolationSelection/Root/IsolationSelectionTool.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ #include <xAODPrimitives/IsolationType.h> @@ -18,14 +18,12 @@ namespace CP { asg::AsgTool(name), /// input file m_calibFile(nullptr), - - /// TAccept's - m_photonAccept("IsolationSelectionToolPhotonTAccept"), - m_electronAccept("IsolationSelectionToolElectronTAccept"), - m_muonAccept("IsolationSelectionToolMuonTAccept"), - m_objAccept("IsolationSelectionToolObjTAccept"), - m_iparWPs(0), - m_iparAccept(0), + m_photonAcceptInfo("IsolationSelectionToolPhotonAccept"), + m_electronAcceptInfo("IsolationSelectionToolElectronAccept"), + m_muonAcceptInfo("IsolationSelectionToolMuonAccept"), + m_objAcceptInfo("IsolationSelectionToolObjAccept"), + m_iparWPs(nullptr), + m_iparAcceptInfo(nullptr), m_Interp(nullptr), m_TwikiLoc("https://twiki.cern.ch/twiki/bin/view/AtlasProtected/IsolationSelectionTool#List_of_current_official_working") { declareProperty("CalibFileName", m_calibFileName = "IsolationSelection/v2/MC15_Z_Jpsi_cutMap.root", "The config file to use"); @@ -123,13 +121,13 @@ namespace CP { StatusCode IsolationSelectionTool::setIParticleCutsFrom(xAOD::Type::ObjectType ObjType) { if (ObjType == xAOD::Type::Electron) { - m_iparAccept = &m_electronAccept; + m_iparAcceptInfo = &m_electronAcceptInfo; m_iparWPs = &m_elWPs; } else if (ObjType == xAOD::Type::Muon) { - m_iparAccept = &m_muonAccept; + m_iparAcceptInfo = &m_muonAcceptInfo; m_iparWPs = &m_muWPs; } else if (ObjType == xAOD::Type::Photon) { - m_iparAccept = &m_photonAccept; + m_iparAcceptInfo = &m_photonAcceptInfo; m_iparWPs = &m_phWPs; } else { return StatusCode::FAILURE; @@ -197,7 +195,7 @@ namespace CP { return StatusCode::FAILURE; } m_muWPs.push_back(wp); - m_muonAccept.addCut(wp->name(), wp->name()); + m_muonAcceptInfo.addCut(wp->name(), wp->name()); return StatusCode::SUCCESS; } @@ -231,7 +229,7 @@ namespace CP { } m_phWPs.push_back(wp); - m_photonAccept.addCut(wp->name(), wp->name()); + m_photonAcceptInfo.addCut(wp->name(), wp->name()); // Return gracefully: return StatusCode::SUCCESS; @@ -281,31 +279,33 @@ namespace CP { } m_elWPs.push_back(wp); - m_electronAccept.addCut(wp->name(), wp->name()); + m_electronAcceptInfo.addCut(wp->name(), wp->name()); // Return gracefully: return StatusCode::SUCCESS; } - StatusCode IsolationSelectionTool::addUserDefinedWP(std::string WPname, xAOD::Type::ObjectType ObjType, std::vector<std::pair<xAOD::Iso::IsolationType, std::string> >& cuts, std::string key, IsoWPType type) { + StatusCode IsolationSelectionTool::addUserDefinedWP(std::string WPname, xAOD::Type::ObjectType ObjType, + std::vector<std::pair<xAOD::Iso::IsolationType, + std::string> >& cuts, std::string key, IsoWPType type) { std::vector<IsolationWP*>* wps(nullptr); - Root::TAccept* ac(nullptr); + asg::AcceptInfo* ac(nullptr); if (ObjType == xAOD::Type::Electron) { if (key == "") key = m_elWPKey; wps = &m_elWPs; - ac = &m_electronAccept; + ac = &m_electronAcceptInfo; } else if (ObjType == xAOD::Type::Muon) { if (key == "") key = m_muWPKey; wps = &m_muWPs; - ac = &m_muonAccept; + ac = &m_muonAcceptInfo; } else if (ObjType == xAOD::Type::Photon) { if (key == "") key = m_phWPKey; wps = &m_phWPs; - ac = &m_photonAccept; + ac = &m_photonAcceptInfo; } else if (ObjType == xAOD::Type::Other) { if (key == "") return StatusCode::FAILURE; wps = &m_objWPs; - ac = &m_objAccept; + ac = &m_objAcceptInfo; } else { return StatusCode::FAILURE; } @@ -322,10 +322,8 @@ namespace CP { delete wp; return StatusCode::FAILURE; } - wps->push_back(wp); ac->addCut(wp->name(), wp->name()); - return StatusCode::SUCCESS; } @@ -343,94 +341,104 @@ namespace CP { StatusCode IsolationSelectionTool::addWP(IsolationWP* wp, xAOD::Type::ObjectType ObjType) { if (ObjType == xAOD::Type::Electron) { m_elWPs.push_back(wp); - m_electronAccept.addCut(wp->name(), wp->name()); + m_electronAcceptInfo.addCut(wp->name(), wp->name()); } else if (ObjType == xAOD::Type::Muon) { m_muWPs.push_back(wp); - m_muonAccept.addCut(wp->name(), wp->name()); + m_muonAcceptInfo.addCut(wp->name(), wp->name()); } else if (ObjType == xAOD::Type::Photon) { m_phWPs.push_back(wp); - m_photonAccept.addCut(wp->name(), wp->name()); + m_photonAcceptInfo.addCut(wp->name(), wp->name()); } else if (ObjType == xAOD::Type::Other) { m_objWPs.push_back(wp); - m_objAccept.addCut(wp->name(), wp->name()); + m_objAcceptInfo.addCut(wp->name(), wp->name()); } else { return StatusCode::FAILURE; } - return StatusCode::SUCCESS; } - template<typename T> void IsolationSelectionTool::evaluateWP(const T& x, const std::vector<IsolationWP*>& WP, Root::TAccept& accept) const { + + template<typename T> void IsolationSelectionTool::evaluateWP(const T& x, + const std::vector<IsolationWP*>& WP, + asg::AcceptData& accept) const { accept.clear(); for (auto& i : WP) { - if (i->accept(x)) accept.setCutResult(i->name(), true); + if (i->accept(x)) { + accept.setCutResult(i->name(), true); + } } } - const Root::TAccept& IsolationSelectionTool::accept(const xAOD::Photon& x) const { - evaluateWP(x, m_phWPs, m_photonAccept); - return m_photonAccept; + + const asg::AcceptData IsolationSelectionTool::accept(const xAOD::Photon& x) const { + asg::AcceptData acceptData(&m_photonAcceptInfo); + evaluateWP(x, m_phWPs, acceptData); + return acceptData; } - const Root::TAccept& IsolationSelectionTool::accept(const xAOD::Electron& x) const { - evaluateWP(x, m_elWPs, m_electronAccept); - return m_electronAccept; + const asg::AcceptData IsolationSelectionTool::accept(const xAOD::Electron& x) const { + asg::AcceptData acceptData(&m_electronAcceptInfo); + evaluateWP(x, m_elWPs, acceptData); + return acceptData; } - const Root::TAccept& IsolationSelectionTool::accept(const xAOD::Muon& x) const { - evaluateWP(x, m_muWPs, m_muonAccept); - return m_muonAccept; + const asg::AcceptData IsolationSelectionTool::accept(const xAOD::Muon& x) const { + asg::AcceptData acceptData(&m_muonAcceptInfo); + evaluateWP(x, m_muWPs, acceptData); + return acceptData; } - const Root::TAccept& IsolationSelectionTool::accept(const xAOD::IParticle& x) const { + const asg::AcceptData IsolationSelectionTool::accept(const xAOD::IParticle& x) const { - if (x.type() == xAOD::Type::Electron) { - evaluateWP(x, m_elWPs, m_electronAccept); - return m_electronAccept; - } else if (x.type() == xAOD::Type::Muon) { - evaluateWP(x, m_muWPs, m_muonAccept); - return m_muonAccept; - } else if (x.type() == xAOD::Type::Photon) { - evaluateWP(x, m_phWPs, m_photonAccept); - return m_photonAccept; - } + if (x.type() == xAOD::Type::Electron) { + const xAOD::Electron& el = static_cast<const xAOD::Electron&> (x); + return accept(el); + } else if (x.type() == xAOD::Type::Muon) { + const xAOD::Muon& muon = static_cast<const xAOD::Muon&> (x); + return accept(muon); + } else if (x.type() == xAOD::Type::Photon) { + const xAOD::Photon& ph = static_cast<const xAOD::Photon&> (x); + return accept(ph); + } + else if (m_iparAcceptInfo && m_iparWPs) { + asg::AcceptData acceptData(m_iparAcceptInfo); + evaluateWP(x, *m_iparWPs, acceptData); + return acceptData; + } + ATH_MSG_ERROR("Someting here makes really no sense"); + return asg::AcceptData(&m_objAcceptInfo); + } - else if (m_iparAccept && m_iparWPs) { - evaluateWP(x, *m_iparWPs, *m_iparAccept); - return *m_iparAccept; - } - ATH_MSG_ERROR("Someting here makes really no sense"); - m_objAccept.clear(); - return m_objAccept; - } - - const Root::TAccept& IsolationSelectionTool::accept(const strObj& x) const { - if (x.type == xAOD::Type::Electron) { - evaluateWP(x, m_elWPs, m_electronAccept); - return m_electronAccept; - } else if (x.type == xAOD::Type::Muon) { - evaluateWP(x, m_muWPs, m_muonAccept); - return m_muonAccept; - } else if (x.type == xAOD::Type::Photon) { - evaluateWP(x, m_phWPs, m_photonAccept); - return m_photonAccept; - } else { - evaluateWP(x, m_objWPs, m_objAccept); - } - return m_objAccept; + const asg::AcceptData IsolationSelectionTool::accept(const strObj& x) const { + if (x.type == xAOD::Type::Electron) { + asg::AcceptData acceptData(&m_electronAcceptInfo); + evaluateWP(x, m_elWPs, acceptData); + return acceptData; + } else if (x.type == xAOD::Type::Muon) { + asg::AcceptData acceptData(&m_muonAcceptInfo); + evaluateWP(x, m_muWPs, acceptData); + return acceptData; + } else if (x.type == xAOD::Type::Photon) { + asg::AcceptData acceptData(&m_photonAcceptInfo); + evaluateWP(x, m_phWPs, acceptData); + return acceptData; + } + asg::AcceptData acceptData(&m_objAcceptInfo); + evaluateWP(x, m_objWPs, acceptData); + return acceptData; } - const Root::TAccept& IsolationSelectionTool::getPhotonTAccept() const { - return m_photonAccept; + const asg::AcceptInfo& IsolationSelectionTool::getPhotonAcceptInfo() const { + return m_photonAcceptInfo; } - const Root::TAccept& IsolationSelectionTool::getElectronTAccept() const { - return m_electronAccept; + const asg::AcceptInfo& IsolationSelectionTool::getElectronAcceptInfo() const { + return m_electronAcceptInfo; } - const Root::TAccept& IsolationSelectionTool::getMuonTAccept() const { - return m_muonAccept; + const asg::AcceptInfo& IsolationSelectionTool::getMuonAcceptInfo() const { + return m_muonAcceptInfo; } - const Root::TAccept& IsolationSelectionTool::getObjTAccept() const { - return m_objAccept; + const asg::AcceptInfo& IsolationSelectionTool::getObjAcceptInfo() const { + return m_objAcceptInfo; } TDirectory* IsolationSelectionTool::getTemporaryDirectory(void) const { diff --git a/PhysicsAnalysis/AnalysisCommon/IsolationSelection/Root/IsolationWP.cxx b/PhysicsAnalysis/AnalysisCommon/IsolationSelection/Root/IsolationWP.cxx index fa7ab1a586773ead4b84b52f000c5833646ea4ed..effb85a62d0231ffcb089e4dc2700353a8250a21 100644 --- a/PhysicsAnalysis/AnalysisCommon/IsolationSelection/Root/IsolationWP.cxx +++ b/PhysicsAnalysis/AnalysisCommon/IsolationSelection/Root/IsolationWP.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ #include <IsolationSelection/IsolationWP.h> @@ -16,31 +16,36 @@ namespace CP { void IsolationWP::name(const std::string &name) { m_name = name; } - const Root::TAccept& IsolationWP::accept(const xAOD::IParticle& p) const { - m_accept.clear(); + + const asg::AcceptData IsolationWP::accept(const xAOD::IParticle& p) const { + asg::AcceptData acceptData(&m_acceptInfo); for (auto c : m_cuts) { - if (c->accept(p, m_cutValues)) m_accept.setCutResult(c->name(), true); + if (c->accept(p, m_cutValues)) { + acceptData.setCutResult(c->name(), true); + } } - return m_accept; + return acceptData; } - const Root::TAccept& IsolationWP::accept(const strObj& p) const { - m_accept.clear(); - for (auto c : m_cuts) { - if (c->accept(p, m_cutValues)) { - m_accept.setCutResult(c->name(), true); - } + const asg::AcceptData IsolationWP::accept(const strObj& p) const { + asg::AcceptData acceptData(&m_acceptInfo); + for (auto c : m_cuts) { + if (c->accept(p, m_cutValues)) { + acceptData.setCutResult(c->name(), true); } - return m_accept; + } + return acceptData; } void IsolationWP::addCut(IsolationCondition* i) { m_cuts.push_back(i); - m_accept.addCut(i->name(), i->name()); + m_acceptInfo.addCut(i->name(), i->name()); } - const Root::TAccept& IsolationWP::getAccept() const { - return m_accept; + + const asg::AcceptInfo& IsolationWP::getAcceptInfo() const { + return m_acceptInfo; } + const std::vector<IsolationCondition*>& IsolationWP::conditions() const{ return m_cuts; } @@ -49,6 +54,6 @@ namespace CP { m_name(name), m_cuts(), m_cutValues(nullptr), - m_accept(){ + m_acceptInfo(){ } } diff --git a/PhysicsAnalysis/AnalysisCommon/IsolationSelection/src/TestIsolationCloseByCorrAthenaAlg.cxx b/PhysicsAnalysis/AnalysisCommon/IsolationSelection/src/TestIsolationCloseByCorrAthenaAlg.cxx index a78c15614b029789fb7195d765f036aec73745c3..00a2ad8c6177beff586e5b7e29818c21800ce7b5 100644 --- a/PhysicsAnalysis/AnalysisCommon/IsolationSelection/src/TestIsolationCloseByCorrAthenaAlg.cxx +++ b/PhysicsAnalysis/AnalysisCommon/IsolationSelection/src/TestIsolationCloseByCorrAthenaAlg.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ //// Developed by Johannes Josef Junggeburth (jojungge@cern.ch) @@ -60,7 +60,7 @@ namespace CP { ATH_CHECK(CreateContainerLinks("Electrons", Electrons)); for (const auto ielec : *Electrons) { //Store if the electron passes the isolation - dec_PassIsol(*ielec) = m_isoSelectorTool->accept(*ielec); + dec_PassIsol(*ielec) = static_cast<bool>(m_isoSelectorTool->accept(*ielec)); //Quality criteria only baseline kinematic selection dec_PassQuality(*ielec) = ielec->pt() > 10.e3 && fabs(ielec->eta()) < 2.47; } @@ -68,7 +68,7 @@ namespace CP { ATH_CHECK(CreateContainerLinks("Photons", Photons)); for (const auto iphot : *Photons) { //Store if the photon passes the isolation (only needed for later comparisons) - dec_PassIsol(*iphot) = m_isoSelectorTool->accept(*iphot); + dec_PassIsol(*iphot) = static_cast<bool>(m_isoSelectorTool->accept(*iphot)); //Quality criteria only baseline kinematic selection dec_PassQuality(*iphot) = iphot->pt() > 25.e3 && fabs(iphot->eta()) < 2.35; } @@ -76,7 +76,7 @@ namespace CP { ATH_CHECK(CreateContainerLinks("Muons", Muons)); for (const auto imuon : *Muons) { //Store if the muon passes the isolation - dec_PassIsol(*imuon) = m_isoSelectorTool->accept(*imuon); + dec_PassIsol(*imuon) = static_cast<bool>(m_isoSelectorTool->accept(*imuon)); //Quality criteria only baseline kinematic selection dec_PassQuality(*imuon) = imuon->pt() > 5.e3 && fabs(imuon->eta()) < 2.7; } diff --git a/PhysicsAnalysis/D3PDMaker/BackgroundD3PDMaker/python/BeamBackgroundD3PDObject.py b/PhysicsAnalysis/D3PDMaker/BackgroundD3PDMaker/python/BeamBackgroundD3PDObject.py index cbd5dfead50e73e0102692d90b08b26514256556..c914f3f330f45df5100ce6219a9673d5fbce3b29 100644 --- a/PhysicsAnalysis/D3PDMaker/BackgroundD3PDMaker/python/BeamBackgroundD3PDObject.py +++ b/PhysicsAnalysis/D3PDMaker/BackgroundD3PDMaker/python/BeamBackgroundD3PDObject.py @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration import BackgroundD3PDMaker import D3PDMakerCoreComps @@ -10,6 +10,7 @@ from D3PDMakerCoreComps.D3PDObject import DeferArg import EventCommonD3PDMaker import CaloD3PDMaker +import CaloSysD3PDMaker import JetD3PDMaker @@ -44,7 +45,7 @@ ClusterAssoc.defineBlock (1, 'bbClusterKinematics', WriteM = False) ClusterAssoc.defineBlock (1, 'bbClusterSamplingBasics', CaloD3PDMaker.ClusterSamplingFillerTool) -from CaloD3PDMaker import ClusterMomentFillerTool as CMFT +from CaloSysD3PDMaker import ClusterMomentFillerTool as CMFT ClusterAssoc.defineBlock (1, 'bbClusterMoments', CMFT, Moments = [CMFT.FIRST_ENG_DENS, 'firstEdens', CMFT.ENG_FRAC_MAX, 'cellmaxfrac', @@ -58,7 +59,7 @@ ClusterAssoc.defineBlock (1, 'bbClusterMoments', CMFT, CMFT.DELTA_PHI, 'deltaPhi' ]) ClusterAssoc.defineBlock (1, 'bbClusterTime', - CaloD3PDMaker.ClusterTimeFillerTool) + CaloSysD3PDMaker.ClusterTimeFillerTool) ClusterAssoc.defineBlock (1, 'bbClusterIndex', D3PDMakerCoreComps.IndexFillerTool, Target = '') diff --git a/PhysicsAnalysis/D3PDMaker/BackgroundD3PDMaker/python/backgroundD3PD.py b/PhysicsAnalysis/D3PDMaker/BackgroundD3PDMaker/python/backgroundD3PD.py index 897507f86332fdf07723efeffadbd6d28a345a2c..9eef81a97b76c2df30e355df0fa4cda5eaccedde 100644 --- a/PhysicsAnalysis/D3PDMaker/BackgroundD3PDMaker/python/backgroundD3PD.py +++ b/PhysicsAnalysis/D3PDMaker/BackgroundD3PDMaker/python/backgroundD3PD.py @@ -260,7 +260,7 @@ def backgroundD3PD (alg=None, alg += PixelClusterD3PDObject( 0 ) if flags.doCaloClus(): - from CaloD3PDMaker.ClusterD3PDObject import ClusterD3PDObject + from CaloSysD3PDMaker.ClusterD3PDObject import ClusterD3PDObject alg += ClusterD3PDObject( 1 ) return alg diff --git a/PhysicsAnalysis/D3PDMaker/D3PDMakerTest/share/D3PDTestPhysicsESD_jo.py b/PhysicsAnalysis/D3PDMaker/D3PDMakerTest/share/D3PDTestPhysicsESD_jo.py index de9ae0ee0349a41eddfe7c0344409fcc5dc06b17..c47f7b420b11fac4405b70ec25c46c4535736ba2 100644 --- a/PhysicsAnalysis/D3PDMaker/D3PDMakerTest/share/D3PDTestPhysicsESD_jo.py +++ b/PhysicsAnalysis/D3PDMaker/D3PDMakerTest/share/D3PDTestPhysicsESD_jo.py @@ -34,7 +34,7 @@ alg = TrackD3PD (tupleFileOutput, PrimaryVertex_storeDiagonalCovarianceAsErrors = True) # And a calorimeter tree! -from CaloD3PDMaker.CaloD3PD import CaloD3PD +from CaloSysD3PDMaker.CaloD3PD import CaloD3PD alg = CaloD3PD (file = tupleFileOutput) # Make supercells into a separate file, if available. diff --git a/PhysicsAnalysis/D3PDMaker/egammaD3PDMaker/CMakeLists.txt b/PhysicsAnalysis/D3PDMaker/egammaD3PDMaker/CMakeLists.txt index bfdeb30d820a093f88cc5e8ebcbe272618cc768d..cbbc9ff030e42e78c781658397862a0a8baef500 100644 --- a/PhysicsAnalysis/D3PDMaker/egammaD3PDMaker/CMakeLists.txt +++ b/PhysicsAnalysis/D3PDMaker/egammaD3PDMaker/CMakeLists.txt @@ -11,7 +11,6 @@ atlas_depends_on_subdirs( PRIVATE Calorimeter/CaloTrackingGeometry Control/AthenaKernel Control/Navigation - Control/SGTools Control/StoreGate Event/EventKernel Event/FourMomUtils @@ -45,7 +44,7 @@ atlas_add_component( egammaD3PDMaker src/*.cxx src/components/*.cxx INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} ${HEPMC_INCLUDE_DIRS} - LINK_LIBRARIES ${CLHEP_LIBRARIES} ${HEPMC_LIBRARIES} CaloIdentifier AthenaKernel Navigation SGTools StoreGateLib SGtests EventKernel FourMomUtils xAODBase xAODCaloEvent xAODEgamma xAODJet xAODTracking xAODTruth GaudiKernel AnalysisTriggerEvent D3PDMakerUtils TriggerD3PDMakerLib MCTruthClassifierLib egammaEvent TrkParameters TrkExInterfaces TrkVertexFitterInterfaces TrigObjectMatchingLib TrigCaloEvent TrigInDetEvent TrigParticle ) + LINK_LIBRARIES ${CLHEP_LIBRARIES} ${HEPMC_LIBRARIES} CaloIdentifier AthenaKernel Navigation StoreGateLib SGtests EventKernel FourMomUtils xAODBase xAODCaloEvent xAODEgamma xAODJet xAODTracking xAODTruth GaudiKernel AnalysisTriggerEvent D3PDMakerUtils TriggerD3PDMakerLib MCTruthClassifierLib egammaEvent TrkParameters TrkExInterfaces TrkVertexFitterInterfaces TrigObjectMatchingLib TrigCaloEvent TrigInDetEvent TrigParticle ) # Install files from the package: atlas_install_python_modules( python/*.py ) diff --git a/PhysicsAnalysis/D3PDMaker/egammaD3PDMaker/src/egammaInheritance.cxx b/PhysicsAnalysis/D3PDMaker/egammaD3PDMaker/src/egammaInheritance.cxx index d3e1cb9bb6105f87b029633035f086405ebbcc8e..8c28c1cfa5fea6012579eae078ce038abd0c9733 100644 --- a/PhysicsAnalysis/D3PDMaker/egammaD3PDMaker/src/egammaInheritance.cxx +++ b/PhysicsAnalysis/D3PDMaker/egammaD3PDMaker/src/egammaInheritance.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ // $Id$ @@ -22,7 +22,7 @@ #include "AnalysisTriggerEvent/EmTau_ROI.h" #include "EventKernel/INavigable4Momentum.h" #include "Navigation/IAthenaBarCode.h" -#include "SGTools/BaseInfo.h" +#include "AthenaKernel/BaseInfo.h" #include "xAODBase/IParticle.h" #include "xAODEgamma/Electron.h" diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkTools/CMakeLists.txt b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkTools/CMakeLists.txt index c7e5fd910502b1a5d47062e170b74efeed676261..d4cf699d1b57eccfe32724d66537a7b3693f4ef3 100644 --- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkTools/CMakeLists.txt +++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkTools/CMakeLists.txt @@ -11,7 +11,8 @@ atlas_depends_on_subdirs( PUBLIC Event/xAOD/xAODBase GaudiKernel PhysicsAnalysis/AnalysisCommon/PATCore - PhysicsAnalysis/DerivationFramework/DerivationFrameworkInterfaces + PhysicsAnalysis/Interfaces/AsgAnalysisInterfaces + PhysicsAnalysis/DerivationFramework/DerivationFrameworkInterfaces Trigger/TrigAnalysis/TrigDecisionTool PRIVATE Control/AthenaKernel @@ -25,11 +26,12 @@ atlas_add_library( DerivationFrameworkToolsLib src/*.cxx PUBLIC_HEADERS DerivationFrameworkTools PRIVATE_INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES AthenaBaseComps xAODBase GaudiKernel PATCoreLib TrigDecisionToolLib ExpressionEvaluationLib + LINK_LIBRARIES AthenaBaseComps xAODBase GaudiKernel PATCoreLib AsgAnalysisInterfaces TrigDecisionToolLib ExpressionEvaluationLib PRIVATE_LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaKernel ) atlas_add_component( DerivationFrameworkTools src/components/*.cxx INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaBaseComps xAODBase GaudiKernel PATCoreLib TrigDecisionToolLib AthenaKernel ExpressionEvaluationLib DerivationFrameworkToolsLib ) + LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaBaseComps xAODBase GaudiKernel AsgAnalysisInterfaces PATCoreLib TrigDecisionToolLib AthenaKernel + ExpressionEvaluationLib DerivationFrameworkToolsLib ) diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkTools/DerivationFrameworkTools/AsgSelectionToolWrapper.h b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkTools/DerivationFrameworkTools/AsgSelectionToolWrapper.h index b02c3360caeed81d5d1dd62ebf5e4d034d0beddd..cdf765f1cea2382c2c7e2cc292def9e048a3300c 100644 --- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkTools/DerivationFrameworkTools/AsgSelectionToolWrapper.h +++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkTools/DerivationFrameworkTools/AsgSelectionToolWrapper.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ /////////////////////////////////////////////////////////////////// @@ -13,7 +13,7 @@ #include "AthenaBaseComps/AthAlgTool.h" #include "DerivationFrameworkInterfaces/IAugmentationTool.h" -#include "PATCore/IAsgSelectionTool.h" +#include "AsgAnalysisInterfaces/ISelectionTool.h" #include "GaudiKernel/ToolHandle.h" namespace DerivationFramework { @@ -27,7 +27,7 @@ namespace DerivationFramework { virtual StatusCode addBranches() const; private: - ToolHandle<IAsgSelectionTool> m_tool; + ToolHandle<CP::ISelectionTool> m_tool; std::string m_cut; std::string m_sgName; std::string m_containerName; diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkTools/src/AsgSelectionToolWrapper.cxx b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkTools/src/AsgSelectionToolWrapper.cxx index 16644e5e113b72c78db9e4ba7dd226d8cf54cf5e..a358cceba1d3be428887a55dc7118372f5eab056 100644 --- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkTools/src/AsgSelectionToolWrapper.cxx +++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkTools/src/AsgSelectionToolWrapper.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ /////////////////////////////////////////////////////////////////// @@ -10,7 +10,7 @@ #include "DerivationFrameworkTools/AsgSelectionToolWrapper.h" #include "xAODBase/IParticleContainer.h" -#include "PATCore/TAccept.h" +#include "PATCore/AcceptData.h" #include <vector> #include <string> @@ -59,18 +59,18 @@ namespace DerivationFramework { // Write mask for each element and record to SG for subsequent selection for (xAOD::IParticleContainer::const_iterator pItr = particles->begin(); pItr!=particles->end(); ++pItr) { - Root::TAccept theAccept(m_tool->accept(*pItr)); + asg::AcceptData theAccept=m_tool->accept(*pItr); if(m_cut==""){ - bool pass_selection = (bool) theAccept; - if(pass_selection) decorator(**pItr) = 1; - else decorator(**pItr) = 0; + bool pass_selection = static_cast<bool>(theAccept); + if(pass_selection) decorator(**pItr) = 1; + else decorator(**pItr) = 0; } else{ - if (theAccept.getCutResult(m_cut)) { - decorator(**pItr) = 1; - } else { - decorator(**pItr) = 0; - } + if (theAccept.getCutResult(m_cut)) { + decorator(**pItr) = 1; + } else { + decorator(**pItr) = 0; + } } } diff --git a/Simulation/G4Atlas/G4AtlasAlg/G4AtlasAlg/G4AtlasRunManager.h b/Simulation/G4Atlas/G4AtlasAlg/G4AtlasAlg/G4AtlasRunManager.h index 6176bd355feba451efe0ebd35712863ed15b7e93..1e101ec2c7adbe01ac357b00d20483649f4973e0 100644 --- a/Simulation/G4Atlas/G4AtlasAlg/G4AtlasAlg/G4AtlasRunManager.h +++ b/Simulation/G4Atlas/G4AtlasAlg/G4AtlasAlg/G4AtlasRunManager.h @@ -31,7 +31,7 @@ class G4AtlasRunManager: public G4RunManager { public: - virtual ~G4AtlasRunManager() {delete m_fluxRecorder;m_fluxRecorder=nullptr;} + virtual ~G4AtlasRunManager() {} /// Retrieve the singleton instance static G4AtlasRunManager* GetG4AtlasRunManager(); @@ -69,7 +69,7 @@ public: m_physListTool.setTypeAndName(typeAndName); } - void SetRecordFlux(bool b, IFluxRecorder *f) { m_recordFlux = b; m_fluxRecorder=f;} + void SetRecordFlux(bool b, std::unique_ptr<IFluxRecorder> f) { m_recordFlux = b; m_fluxRecorder=std::move(f);} void SetLogLevel(int) { /* Not implemented */ } /// @} @@ -109,7 +109,7 @@ private: /// Interface to flux recording - IFluxRecorder *m_fluxRecorder; + std::unique_ptr<IFluxRecorder> m_fluxRecorder; }; #endif // G4ATLASALG_G4AtlasRunManager_h diff --git a/Simulation/G4Atlas/G4AtlasAlg/src/G4AtlasAlg.cxx b/Simulation/G4Atlas/G4AtlasAlg/src/G4AtlasAlg.cxx index 51497be66d0da8f120aa7c3652214e15e519a38e..ab1f781b9a55c00cec0b0f8af454445a9441843e 100644 --- a/Simulation/G4Atlas/G4AtlasAlg/src/G4AtlasAlg.cxx +++ b/Simulation/G4Atlas/G4AtlasAlg/src/G4AtlasAlg.cxx @@ -140,7 +140,7 @@ void G4AtlasAlg::initializeOnce() else { auto* runMgr = G4AtlasRunManager::GetG4AtlasRunManager(); m_physListTool->SetPhysicsList(); - runMgr->SetRecordFlux( m_recordFlux, new G4AtlasFluxRecorder ); + runMgr->SetRecordFlux( m_recordFlux, std::make_unique<G4AtlasFluxRecorder>() ); runMgr->SetLogLevel( int(msg().level()) ); // Synch log levels runMgr->SetUserActionSvc( m_userActionSvc.typeAndName() ); runMgr->SetDetGeoSvc( m_detGeoSvc.typeAndName() ); diff --git a/Simulation/ISF/ISF_Config/share/AllDet_detDescr.py b/Simulation/ISF/ISF_Config/share/AllDet_detDescr.py index 75f6a6ebc475e93c364411b0f6f870c218e804c0..a7973c4ec9eccc45deed6e37f200cc54d55b795c 100644 --- a/Simulation/ISF/ISF_Config/share/AllDet_detDescr.py +++ b/Simulation/ISF/ISF_Config/share/AllDet_detDescr.py @@ -12,10 +12,6 @@ if DetFlags.detdescr.any_on(): from AtlasGeoModel import GeoModelInit from AtlasGeoModel import SetupRecoGeometry - # Beam Spot service job options - just defines conditions data access - if DetFlags.detdescr.ID_on(): - protectedInclude("InDetBeamSpotService/BeamCondSvc.py" ) - import os if "AthSimulation_DIR" not in os.environ: if DetFlags.detdescr.LAr_on(): diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsG4/CMakeLists.txt b/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsG4/CMakeLists.txt index d8a4357482c539546b44f1fd1853355710fce91a..2dfae7ef630ba21394dccb20982c8a2f5b56a22e 100644 --- a/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsG4/CMakeLists.txt +++ b/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsG4/CMakeLists.txt @@ -16,6 +16,7 @@ atlas_depends_on_subdirs( PUBLIC PRIVATE Control/StoreGate Simulation/Barcode/BarcodeEvent + Simulation/G4Atlas/G4AtlasAlg Simulation/ISF/ISF_Core/ISF_Interfaces Simulation/ISF/ISF_Geant4/ISF_Geant4Tools Tracking/TrkDetDescr/TrkGeometry ) diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsG4/ISF_FatrasToolsG4/G4HadIntProcessor.h b/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsG4/ISF_FatrasToolsG4/G4HadIntProcessor.h index 4a955ec1e527faffb0cea3049d412916ffcbd8f9..bf42a36f56b6be367c557581c7b37d8279ec0c5b 100644 --- a/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsG4/ISF_FatrasToolsG4/G4HadIntProcessor.h +++ b/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsG4/ISF_FatrasToolsG4/G4HadIntProcessor.h @@ -130,20 +130,25 @@ namespace iFatras { /** describe deflection parametric/do real deflection */ bool m_parametricScattering; - //!< Geant4 engine - mutable G4RunManager* m_g4runManager; - G4VUserPhysicsList* m_g4physicsList; - G4LayerDetectorConstruction* m_g4detector; - - //!< Geant4 processes <PDGcode, process> TODO : fission, capture + /* + * Geant4 engine + * - Used only for `G4RunManager::SetVerboseLevel()` -> mutable + * - Does not take ownership -> no smart pointer + */ + mutable G4RunManager* m_g4runManager; + + /* + * Geant4 processes <PDGcode, process> TODO : fission, capture + * - Used only for "easy access" to processes + * - Does not take ownership -> no smart pointers + */ mutable std::map<int, G4VProcess*> m_g4HadrInelasticProcesses; mutable std::map<int, G4VProcess*> m_g4HadrElasticProcesses; //!< locally stored Geant4 instances (speeds up processing) - mutable G4DynamicParticle* m_g4dynPar; - mutable const G4ThreeVector* m_g4zeroPos; - mutable G4Step* m_g4step; - mutable G4StepPoint* m_g4stepPoint; + mutable std::unique_ptr<G4ThreeVector> m_g4zeroPos; + mutable std::unique_ptr<G4Step> m_g4step; + mutable std::unique_ptr<G4StepPoint> m_g4stepPoint; mutable std::vector<std::pair<float,std::pair< G4Material*, G4MaterialCutsCouple*> > > m_g4Material; /** ISF services & Tools */ @@ -153,7 +158,11 @@ namespace iFatras { /** MCTruth process code for TruthIncidents created by this tool */ Barcode::PhysicsProcessCode m_processCode; - /** Random engine */ + /* + * Random engine + * - Initialised by `ServiceHandle<IAtRndmGenSvc>::GetEngine()` + * - Does not take ownership -> no smart pointer + */ CLHEP::HepRandomEngine* m_randomEngine; std::string m_randomEngineName; //!< Name of the random number stream diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsG4/src/G4HadIntProcessor.cxx b/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsG4/src/G4HadIntProcessor.cxx index 7a85d8a2fc97f8f5ff2b01dce1f62c292aa690e1..783e24070f6b57e50da89dc04e85aec6e392f172 100644 --- a/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsG4/src/G4HadIntProcessor.cxx +++ b/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsG4/src/G4HadIntProcessor.cxx @@ -86,13 +86,10 @@ iFatras::G4HadIntProcessor::G4HadIntProcessor(const std::string& t, const std::s m_minMomentum(50.0), m_cloneParameters(false), m_parametricScattering(false), - m_g4runManager(0), - m_g4physicsList(0), - m_g4detector(0), - m_g4dynPar(0), - m_g4zeroPos(0), - m_g4step(0), - m_g4stepPoint(0), + m_g4runManager(nullptr), + m_g4zeroPos(nullptr), + m_g4step(nullptr), + m_g4stepPoint(nullptr), m_particleBroker("ISF_ParticleBrokerSvc", n), m_truthRecordSvc("ISF_ValidationTruthService", n), m_processCode(121), @@ -204,12 +201,6 @@ StatusCode iFatras::G4HadIntProcessor::initialize() StatusCode iFatras::G4HadIntProcessor::finalize() { - // clean up locally stored Geant4 instances - delete m_g4dynPar; - delete m_g4zeroPos; - //delete m_g4step; will be deleted via m_g4stepPoint - delete m_g4stepPoint; - ATH_MSG_INFO( " ---------- Statistics output -------------------------- " ); //ATH_MSG_INFO( " Minimum energy cut for brem photons : " << m_minimumBremPhotonMomentum ); //ATH_MSG_INFO( " Brem photons (above cut, recorded) : " << m_recordedBremPhotons ); @@ -343,11 +334,10 @@ bool iFatras::G4HadIntProcessor::initG4RunManager() const { initProcessPDG(-321); // set up locally stored Geant4 instances - m_g4dynPar = new G4DynamicParticle(); - m_g4zeroPos = new G4ThreeVector(0, 0, 0); - m_g4step = new G4Step(); - m_g4stepPoint = new G4StepPoint(); - m_g4step->SetPreStepPoint( m_g4stepPoint); + m_g4zeroPos.reset(new G4ThreeVector(0, 0, 0)), + m_g4step.reset(new G4Step()), + m_g4stepPoint.reset(new G4StepPoint()), + m_g4step->SetPreStepPoint(m_g4stepPoint.get()); // define the available G4Material m_g4Material.clear(); @@ -453,9 +443,7 @@ ISF::ISFParticleVector iFatras::G4HadIntProcessor::getHadState(const ISF::ISFPar const G4ThreeVector mom( momentum.x(), momentum.y(), momentum.z() ); inputPar->SetMomentum( mom); // position and timing dummy - G4Track* g4track=new G4Track( inputPar, 0 /* time */, *m_g4zeroPos); - //G4TouchableHandle g4touchable(new G4TouchableHistory()); // TODO check memory handling here - //g4track->SetTouchableHandle( g4touchable); + std::unique_ptr<G4Track> g4track = std::make_unique<G4Track>( inputPar, 0 /* time */, *m_g4zeroPos); // setup up G4Material --------------------------------------------------------------------------- std::pair<G4Material*, G4MaterialCutsCouple*> g4mat = retrieveG4Material(ematprop); @@ -467,9 +455,10 @@ ISF::ISFParticleVector iFatras::G4HadIntProcessor::getHadState(const ISF::ISFPar // preparing G4Step and G4Track m_g4step->DeleteSecondaryVector(); - g4track->SetStep( m_g4step); + g4track->SetStep(m_g4step.get()); // by default, the current process is the inelastic hadr. interaction + // Does not take ownership (see definition of m_g4HadrInelasticProcesses) -> no delete or smart pointer G4VProcess *process = processIter_inelast!=m_g4HadrInelasticProcesses.end() ? processIter_inelast->second : 0; // if elastic interactions are enabled and there is a elastic process @@ -481,16 +470,18 @@ ISF::ISFParticleVector iFatras::G4HadIntProcessor::getHadState(const ISF::ISFPar if( rand < 0.5) process = processIter_elast->second; } + if (!process) + { + ATH_MSG_WARNING( " [ ---- ] Cannot get G4VProcess from map (nullptr)!"); + return chDef; + } + ATH_MSG_VERBOSE ( " [ g4sim ] Computing " << process->GetProcessName() << " process with current particle" ); - // do the G4VProcess (actually a G4HadronicProcess) ------------------------------------ - //process->SetVerboseLevel(10); - //ATH_MSG_VERBOSE ( "Verbose Level is " << process->GetVerboseLevel() ); - + // Does not take ownership -> no delete or smart pointer G4VParticleChange* g4change = process->PostStepDoIt(*g4track, *m_g4step); if (!g4change) { ATH_MSG_WARNING( " [ ---- ] Geant4 did not return any hadronic interaction information of particle with pdg=" << pdg ); - delete g4track; return chDef; } @@ -561,14 +552,12 @@ ISF::ISFParticleVector iFatras::G4HadIntProcessor::getHadState(const ISF::ISFPar // free up memory g4change->Clear(); - delete g4track; return children; } // free up memory g4change->Clear(); - delete g4track; return chDef; } diff --git a/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/CMakeLists.txt b/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/CMakeLists.txt index 9285829915a8f913ab100498634011122c3a60c5..522a2adab571767228593eca8be1484642e19e6d 100644 --- a/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/CMakeLists.txt +++ b/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/CMakeLists.txt @@ -17,6 +17,7 @@ atlas_depends_on_subdirs( PUBLIC DetectorDescription/AtlasDetDescr Generators/GeneratorObjects Simulation/G4Atlas/G4AtlasTools + Simulation/G4Atlas/G4AtlasAlg Simulation/G4Sim/MCTruth Simulation/G4Sim/SimHelpers Simulation/ISF/ISF_Core/ISF_Event @@ -37,7 +38,7 @@ atlas_add_component( ISF_Geant4Tools src/*.cxx src/components/*.cxx INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${XERCESC_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} ${HEPMC_INCLUDE_DIRS} ${GEANT4_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} ${XERCESC_LIBRARIES} ${CLHEP_LIBRARIES} ${HEPMC_LIBRARIES} ${GEANT4_LIBRARIES} ${EIGEN_LIBRARIES} AthenaKernel GaudiKernel G4AtlasInterfaces AthenaBaseComps CxxUtils StoreGateLib SGtests AtlasDetDescr GeneratorObjects G4AtlasToolsLib MCTruth SimHelpers ISF_Event ISF_Interfaces ISF_Geant4Event ) + LINK_LIBRARIES ${ROOT_LIBRARIES} ${XERCESC_LIBRARIES} ${CLHEP_LIBRARIES} ${HEPMC_LIBRARIES} ${GEANT4_LIBRARIES} ${EIGEN_LIBRARIES} AthenaKernel GaudiKernel G4AtlasInterfaces AthenaBaseComps CxxUtils StoreGateLib SGtests AtlasDetDescr GeneratorObjects G4AtlasToolsLib G4AtlasAlgLib MCTruth SimHelpers ISF_Event ISF_Interfaces ISF_Geant4Event ) # Install files from the package: atlas_install_headers( ISF_Geant4Tools ) diff --git a/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/ISF_Geant4Tools/G4AtlasRunManager.h b/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/ISF_Geant4Tools/G4AtlasRunManager.h deleted file mode 100644 index b2df8bdd6b39b3f15d58ee94d26b2bc647d5c83a..0000000000000000000000000000000000000000 --- a/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/ISF_Geant4Tools/G4AtlasRunManager.h +++ /dev/null @@ -1,125 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -/////////////////////////////////////////////////////////////////// -// TransportTool.h, (c) ATLAS Detector software -/////////////////////////////////////////////////////////////////// - -#ifndef ISF_GEANT4TOOLS_G4ATLASRUNMANAGER_H -#define ISF_GEANT4TOOLS_G4ATLASRUNMANAGER_H - -// Base class header -#include "G4RunManager.hh" - -// Gaudi headers -#include "GaudiKernel/ServiceHandle.h" -#include "GaudiKernel/ToolHandle.h" - -// Athena headers -#include "AthenaKernel/MsgStreamMember.h" -#include "G4AtlasInterfaces/ISensitiveDetectorMasterTool.h" -#include "G4AtlasInterfaces/IFastSimulationMasterTool.h" -#include "G4AtlasInterfaces/IPhysicsListTool.h" -#include "G4AtlasInterfaces/IUserActionSvc.h" -#include "G4AtlasInterfaces/IDetectorGeometrySvc.h" -#include "G4AtlasInterfaces/IFluxRecorder.h" - -/// ATLAS custom singleton run manager. -/// -/// This is the run manager used for serial (not-MT) jobs. -/// @TODO sync and reduce code duplication with MT run managers. -/// - -namespace iGeant4 -{ - - class G4AtlasRunManager : public G4RunManager { - - public: - - virtual ~G4AtlasRunManager() {} - - /// Retrieve the singleton instance - static G4AtlasRunManager* GetG4AtlasRunManager(); - - /// Does the work of simulating an ATLAS event - bool ProcessEvent(G4Event* event); - - /// G4 function called at end of run - void RunTermination() override final; - - /// @name Methods to pass configuration in from G4AtlasAlg - /// @{ - /// Configure the user action service handle - void SetUserActionSvc(const std::string& typeAndName) { - m_userActionSvc.setTypeAndName(typeAndName); - } - - /// Configure the detector geometry service handle - void SetDetGeoSvc(const std::string& typeAndName) { - m_detGeoSvc.setTypeAndName(typeAndName); - } - - /// Configure the Sensitive Detector Master Tool handle - void SetSDMasterTool(const std::string& typeAndName) { - m_senDetTool.setTypeAndName(typeAndName); - } - - /// Configure the Fast Simulation Master Tool handle - void SetFastSimMasterTool(const std::string& typeAndName) { - m_fastSimTool.setTypeAndName(typeAndName); - } - - /// Configure the Physics List Tool handle - void SetPhysListTool(const std::string& typeAndName) { - m_physListTool.setTypeAndName(typeAndName); - } - - void SetRecordFlux(bool b, IFluxRecorder *f) { m_recordFlux = b; m_fluxRecorder=f;} - void SetLogLevel(int) { /* Not implemented */ } - /// @} - - protected: - - /// @name Overridden G4 init methods for customization - /// @{ - void Initialize() override final; - void InitializeGeometry() override final; - void InitializePhysics() override final; - /// @} - - private: - - /// Pure singleton private constructor - G4AtlasRunManager(); - - void EndEvent(); - - /// Log a message using the Athena controlled logging system - MsgStream& msg( MSG::Level lvl ) const { return m_msg << lvl; } - /// Check whether the logging system is active at the provided verbosity level - bool msgLvl( MSG::Level lvl ) const { return m_msg.get().level() <= lvl; } - - /// Private message stream member - mutable Athena::MsgStreamMember m_msg; - - bool m_recordFlux; - - ToolHandle<ISensitiveDetectorMasterTool> m_senDetTool; - ToolHandle<IFastSimulationMasterTool> m_fastSimTool; - ToolHandle<IPhysicsListTool> m_physListTool; - - /// Handle to the user action service - ServiceHandle<G4UA::IUserActionSvc> m_userActionSvc; - ServiceHandle<IDetectorGeometrySvc> m_detGeoSvc; - - /// Interface to flux recording - - IFluxRecorder *m_fluxRecorder; - }; - -} - - -#endif // ISF_GEANT4TOOLS_G4ATLASRUNMANAGER_H diff --git a/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/ISF_Geant4Tools/IG4RunManagerHelper.h b/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/ISF_Geant4Tools/IG4RunManagerHelper.h index 7d7d88d9a9b65aaf6a8bcbc710ccd58df978ed5e..5953ff584a7d01503a79990e42fc25ad6804e7bb 100644 --- a/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/ISF_Geant4Tools/IG4RunManagerHelper.h +++ b/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/ISF_Geant4Tools/IG4RunManagerHelper.h @@ -11,7 +11,7 @@ // Gaudi #include "GaudiKernel/IAlgTool.h" -#include "ISF_Geant4Tools/G4AtlasRunManager.h" +#include "G4AtlasAlg/G4AtlasRunManager.h" namespace ISF { @@ -31,7 +31,7 @@ namespace ISF { DeclareInterfaceID(IG4RunManagerHelper, 1, 0); /** get the fully configured G4RunManager */ - virtual iGeant4::G4AtlasRunManager* g4RunManager() const = 0; + virtual G4AtlasRunManager* g4RunManager() const = 0; /** get the light version of G4RunManager */ virtual G4RunManager* fastG4RunManager() const = 0; diff --git a/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/src/G4AtlasRunManager.cxx b/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/src/G4AtlasRunManager.cxx deleted file mode 100644 index e4e9953b9f6b989b38c024b99dc611b5a1536117..0000000000000000000000000000000000000000 --- a/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/src/G4AtlasRunManager.cxx +++ /dev/null @@ -1,234 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "ISF_Geant4Tools/G4AtlasRunManager.h" - -#include "AthenaBaseComps/AthMsgStreamMacros.h" - -#include "G4GeometryManager.hh" -#include "G4LogicalVolumeStore.hh" -#include "G4ParallelWorldScoringProcess.hh" -#include "G4RegionStore.hh" -#include "G4Run.hh" -#include "G4ScoringManager.hh" -#include "G4StateManager.hh" -#include "G4TransportationManager.hh" -#include "G4UImanager.hh" -#include "G4UserRunAction.hh" -#include "G4Version.hh" -#include "G4HCofThisEvent.hh" - -#include <string> - -//________________________________________________________________________ -iGeant4::G4AtlasRunManager::G4AtlasRunManager() - : G4RunManager() - , m_msg("G4AtlasRunManager") - , m_recordFlux(false) - , m_senDetTool("SensitiveDetectorMasterTool") - , m_fastSimTool("FastSimulationMasterTool") - , m_physListTool("PhysicsListToolBase") - , m_userActionSvc("", "G4AtlasRunManager") - , m_detGeoSvc("DetectorGeometrySvc", "G4AtlasRunManager") -{ } - -//________________________________________________________________________ -iGeant4::G4AtlasRunManager* iGeant4::G4AtlasRunManager::GetG4AtlasRunManager() -{ - static G4AtlasRunManager *thisManager = nullptr; - if (!thisManager) { thisManager = new G4AtlasRunManager; } // Leaked - return thisManager; -} - -//________________________________________________________________________ -void iGeant4::G4AtlasRunManager::Initialize() -{ - // Call the base class Initialize method. This will call - // InitializeGeometry and InitializePhysics. - G4RunManager::Initialize(); - - const std::string methodName = "iGeant4::G4AtlasRunManager::Initialize"; - // Now that the G4 geometry is available, setup the user actions. - if( !m_userActionSvc.name().empty() ) { - ATH_MSG_INFO("Creating user actions now"); - if(m_userActionSvc.retrieve().isFailure()) { - throw GaudiException("Could not retrieve UserActionSvc", - methodName, StatusCode::FAILURE); - } - if(m_userActionSvc->initializeActions().isFailure()) { - throw GaudiException("Failed to initialize actions", - methodName, StatusCode::FAILURE); - } - } - -} - -//________________________________________________________________________ -void iGeant4::G4AtlasRunManager::InitializeGeometry() -{ - ATH_MSG_DEBUG( "InitializeGeometry()" ); - if (m_detGeoSvc.retrieve().isFailure()) { - ATH_MSG_ERROR ( "Could not retrieve the DetectorGeometrySvc" ); - G4ExceptionDescription description; - description << "InitializeGeometry: Failed to retrieve IDetectorGeometrySvc."; - G4Exception("G4AtlasRunManager", "CouldNotRetrieveDetGeoSvc", FatalException, description); - abort(); // to keep Coverity happy - } - - // Set smartlessness - G4LogicalVolumeStore *logicalVolumeStore = G4LogicalVolumeStore::GetInstance(); - const G4String muonSys("Muon::MuonSys"); - const G4String embSTAC("LArMgr::LAr::EMB::STAC"); - for (auto* ilv : *logicalVolumeStore ) { - if ( ilv->GetName() == muonSys ) { - ilv->SetSmartless( 0.1 ); - ATH_MSG_INFO( "Set smartlessness for Muon::MuonSys to 0.1" ); - } - else if ( ilv->GetName() == embSTAC ) { - ilv->SetSmartless( 0.5 ); - ATH_MSG_INFO( "Set smartlessness for LArMgr::LAr::EMB::STAC to 0.5" ); - } - } - - // Create/assign detector construction - G4RunManager::SetUserInitialization(m_detGeoSvc->GetDetectorConstruction()); - if (userDetector) { - G4RunManager::InitializeGeometry(); - } - else { - ATH_MSG_WARNING( " User Detector not set!!! Geometry NOT initialized!!!" ); - } - - // Geometry has been initialized. Now get services to add some stuff to the geometry. - if (m_senDetTool.retrieve().isFailure()) { - ATH_MSG_ERROR ( "Could not retrieve the SD master tool" ); - G4ExceptionDescription description; - description << "InitializeGeometry: Failed to retrieve ISensitiveDetectorMasterTool."; - G4Exception("G4AtlasRunManager", "CouldNotRetrieveSDMaster", FatalException, description); - abort(); // to keep Coverity happy - } - if(m_senDetTool->initializeSDs().isFailure()) { - G4ExceptionDescription description; - description << "InitializeGeometry: Call to ISensitiveDetectorMasterTool::initializeSDs failed."; - G4Exception("G4AtlasRunManager", "FailedToInitializeSDs", FatalException, description); - abort(); // to keep Coverity happy - } - return; -} - -//________________________________________________________________________ -void iGeant4::G4AtlasRunManager::EndEvent() -{ - // ADA, 11/28/2018: According to ZLM this function is never called. Code is - // duplicated in ISFFluxRecorder and removed from here - - ATH_MSG_DEBUG( "G4AtlasRunManager::EndEvent" ); -} - -//________________________________________________________________________ -void iGeant4::G4AtlasRunManager::InitializePhysics() -{ - ATH_MSG_INFO( "InitializePhysics()" ); - kernel->InitializePhysics(); - physicsInitialized = true; - - // Grab the physics list tool and set the extra options - if (m_physListTool.retrieve().isFailure()) { - ATH_MSG_ERROR ( "Could not retrieve the physics list tool" ); - G4ExceptionDescription description; - description << "InitializePhysics: Failed to retrieve IPhysicsListTool."; - G4Exception("G4AtlasRunManager", "CouldNotRetrievePLTool", FatalException, description); - abort(); // to keep Coverity happy - } - m_physListTool->SetPhysicsOptions(); - - // Fast simulations last - if (m_fastSimTool.retrieve().isFailure()) { - ATH_MSG_ERROR ( "Could not retrieve the FastSim master tool" ); - G4ExceptionDescription description; - description << "InitializePhysics: Failed to retrieve IFastSimulationMasterTool."; - G4Exception("G4AtlasRunManager", "CouldNotRetrieveFastSimMaster", FatalException, description); - abort(); // to keep Coverity happy - } - if(m_fastSimTool->initializeFastSims().isFailure()) { - G4ExceptionDescription description; - description << "InitializePhysics: Call to IFastSimulationMasterTool::initializeFastSims failed."; - G4Exception("G4AtlasRunManager", "FailedToInitializeFastSims", FatalException, description); - abort(); // to keep Coverity happy - } - - if (m_recordFlux) { - m_fluxRecorder->InitializeFluxRecording(); - } - - return; -} - - -//________________________________________________________________________ -bool iGeant4::G4AtlasRunManager::ProcessEvent(G4Event* event) -{ - - G4StateManager* stateManager = G4StateManager::GetStateManager(); - stateManager->SetNewState(G4State_GeomClosed); - - currentEvent = event; - - eventManager->ProcessOneEvent(currentEvent); - if (currentEvent->IsAborted()) { - ATH_MSG_WARNING( "G4AtlasRunManager::ProcessEvent: Event Aborted at Detector Simulation level" ); - currentEvent = nullptr; - return true; - } - - if (m_recordFlux) { m_fluxRecorder->RecordFlux(currentEvent); } - - this->StackPreviousEvent(currentEvent); - bool abort = currentEvent->IsAborted(); - currentEvent = nullptr; - - return abort; -} - - -//________________________________________________________________________ -void iGeant4::G4AtlasRunManager::RunTermination() -{ - ATH_MSG_DEBUG( " G4AtlasRunManager::RunTermination() " ); - if (m_recordFlux) { - m_fluxRecorder->WriteFluxInformation(); - } - - this->CleanUpPreviousEvents(); - previousEvents->clear(); - - if (userRunAction) { - userRunAction->EndOfRunAction(currentRun); - } - - delete currentRun; - currentRun = nullptr; - runIDCounter++; - - ATH_MSG_VERBOSE( "Changing the state..." ); - G4StateManager* stateManager = G4StateManager::GetStateManager(); - stateManager->SetNewState(G4State_Idle); - - ATH_MSG_VERBOSE( "Opening the geometry back up" ); - G4GeometryManager::GetInstance()->OpenGeometry(); - - ATH_MSG_VERBOSE( "Terminating the run... State is " << stateManager->GetStateString( stateManager->GetCurrentState() ) ); - kernel->RunTermination(); - ATH_MSG_VERBOSE( "All done..." ); - - userRunAction = nullptr; - userEventAction = nullptr; - userSteppingAction = nullptr; - userStackingAction = nullptr; - userTrackingAction = nullptr; - userDetector = nullptr; - userPrimaryGeneratorAction = nullptr; - - return; -} diff --git a/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/src/G4RunManagerHelper.cxx b/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/src/G4RunManagerHelper.cxx index a0789d381f27f94be952bcd077d1e402ac46c800..8c0f87b17923335952b8d312170817fa8badcdce 100644 --- a/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/src/G4RunManagerHelper.cxx +++ b/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/src/G4RunManagerHelper.cxx @@ -42,7 +42,7 @@ StatusCode iGeant4::G4RunManagerHelper::finalize() } -iGeant4::G4AtlasRunManager* iGeant4::G4RunManagerHelper::g4RunManager() const +G4AtlasRunManager* iGeant4::G4RunManagerHelper::g4RunManager() const { if (m_g4RunManager) return m_g4RunManager; diff --git a/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/src/G4RunManagerHelper.h b/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/src/G4RunManagerHelper.h index ba3c9589144ad14936aa6c26e50066189f68a236..c1c6ae8910bbc41e47f3654be5483fbd4fd851c1 100644 --- a/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/src/G4RunManagerHelper.h +++ b/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/src/G4RunManagerHelper.h @@ -8,7 +8,7 @@ #include "AthenaBaseComps/AthAlgTool.h" #include "ISF_Geant4Tools/IG4RunManagerHelper.h" -#include "ISF_Geant4Tools/G4AtlasRunManager.h" +#include "G4AtlasAlg/G4AtlasRunManager.h" namespace iGeant4 { diff --git a/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/src/TransportTool.cxx b/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/src/TransportTool.cxx index dc705ad86e6e14141e78ec886b7704269a14b470..206c8123aff13152bf76e45c0dd50ec1a5765f9b 100644 --- a/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/src/TransportTool.cxx +++ b/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/src/TransportTool.cxx @@ -6,7 +6,7 @@ #include "TransportTool.h" //package includes -#include "ISF_Geant4Tools/G4AtlasRunManager.h" +#include "G4AtlasAlg/G4AtlasRunManager.h" #include "ISFFluxRecorder.h" // ISF classes @@ -127,7 +127,7 @@ void iGeant4::G4TransportTool::initializeOnce() } m_physListTool->SetPhysicsList(); - m_pRunMgr->SetRecordFlux( m_recordFlux, new ISFFluxRecorder ); + m_pRunMgr->SetRecordFlux( m_recordFlux, std::make_unique<ISFFluxRecorder>() ); m_pRunMgr->SetLogLevel( int(msg().level()) ); // Synch log levels m_pRunMgr->SetUserActionSvc( m_userActionSvc.typeAndName() ); m_pRunMgr->SetDetGeoSvc( m_detGeoSvc.typeAndName() ); diff --git a/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/src/TransportTool.h b/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/src/TransportTool.h index 28f161efc3dd716172441309659593f409f3bddb..a56f84a3cd71aef38907f7b69e1fc86718f7a7fc 100644 --- a/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/src/TransportTool.h +++ b/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/src/TransportTool.h @@ -33,6 +33,8 @@ class G4Event; +class G4AtlasRunManager; + namespace ISF { class ISFParticle; } @@ -52,8 +54,6 @@ namespace iGeant4 @author Robert Harrington */ - class G4AtlasRunManager; - class G4TransportTool : public ISF::BaseSimulatorTool { public: diff --git a/TileCalorimeter/TileConditions/TileConditions/ITileCellNoiseTool.h b/TileCalorimeter/TileConditions/TileConditions/ITileCellNoiseTool.h index bb53c93f5231d3f9b524fe1bdad33758390f5d70..3dc49696cb8a972b835e87e2fd51a3050d83ebfe 100644 --- a/TileCalorimeter/TileConditions/TileConditions/ITileCellNoiseTool.h +++ b/TileCalorimeter/TileConditions/TileConditions/ITileCellNoiseTool.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ #ifndef TILECONDITIONS_ITILECELLNOISETOOL_H @@ -17,13 +17,9 @@ class ITileCellNoiseTool : virtual public IAlgTool { virtual ~ITileCellNoiseTool() {} - static const InterfaceID& interfaceID() { - static const InterfaceID IID_ITileCellNoiseTool("ITileCellNoiseTool", 1 , 0); - return IID_ITileCellNoiseTool; - } - virtual float getCellNoise(const Identifier& cell_id, CaloGain::CaloGain caloGain) const = 0; - + + DeclareInterfaceID(ITileCellNoiseTool, 1, 0); }; #endif diff --git a/TileCalorimeter/TileConditions/TileConditions/ITileCondToolOfc.h b/TileCalorimeter/TileConditions/TileConditions/ITileCondToolOfc.h index d50bfab5c5f5583996a4561aa8c7ea3658f5c161..d7edbd5efa30bafd6a2f20f324ab2012e7696b17 100644 --- a/TileCalorimeter/TileConditions/TileConditions/ITileCondToolOfc.h +++ b/TileCalorimeter/TileConditions/TileConditions/ITileCondToolOfc.h @@ -22,15 +22,12 @@ class ITileCondToolOfc : public virtual IAlgTool { virtual ~ITileCondToolOfc() {} - static const InterfaceID& interfaceID() { - static const InterfaceID IID_ITileCondToolOfc("ITileCondToolOfc", 1 , 0); - return IID_ITileCondToolOfc; - } - virtual const TileOfcWeightsStruct * getOfcWeights(unsigned int drawerIdx, unsigned int channel, unsigned int adc, float& phase, bool of2) = 0 ; virtual int getNSamples(void) = 0 ; + DeclareInterfaceID(ITileCondToolOfc, 1, 0); + }; #endif diff --git a/TileCalorimeter/TileConditions/TileConditions/TileCellNoiseTool.h b/TileCalorimeter/TileConditions/TileConditions/TileCellNoiseTool.h index b5fb6633459dff6ce6e4e626cd072a3248136291..63c3ecc14986f769d8b73c5ef2a84adc8af1a83b 100644 --- a/TileCalorimeter/TileConditions/TileConditions/TileCellNoiseTool.h +++ b/TileCalorimeter/TileConditions/TileConditions/TileCellNoiseTool.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ #ifndef TILECONDITIONS_TILECELLNOISETOOL_H @@ -7,6 +7,8 @@ // Tile includes #include "TileConditions/ITileCellNoiseTool.h" +#include "TileConditions/TileCondIdTransforms.h" +#include "TileConditions/ITileCondToolNoise.h" // Athena includes #include "AthenaBaseComps/AthAlgTool.h" @@ -19,14 +21,11 @@ // Forward declaration class TileCablingSvc; -class TileCondIdTransforms; -class ITileCondToolNoise; -class TileCellNoiseTool: public AthAlgTool - , virtual public ITileCellNoiseTool { +class TileCellNoiseTool: public extends<AthAlgTool, ITileCellNoiseTool> { + public: - static const InterfaceID& interfaceID(); TileCellNoiseTool(const std::string& type, const std::string& name, const IInterface* parent); virtual ~TileCellNoiseTool(); @@ -39,8 +38,11 @@ class TileCellNoiseTool: public AthAlgTool //=== used tools ServiceHandle<TileCablingSvc> m_tileCabling; - ToolHandle<TileCondIdTransforms> m_tileIdTrans; - ToolHandle<ITileCondToolNoise> m_tileToolNoise; + ToolHandle<TileCondIdTransforms> m_tileIdTrans{this, + "TileCondIdTransforms", "TileCondIdTransforms", "Tile Id transform helper tool"}; + + ToolHandle<ITileCondToolNoise> m_tileToolNoise{this, + "TileCondToolNoise", "TileCondToolNoiseSample", "Tile cell noise tool"}; }; diff --git a/TileCalorimeter/TileConditions/TileConditions/TileCondToolOfc.h b/TileCalorimeter/TileConditions/TileConditions/TileCondToolOfc.h index 2490c76d4a518cad459fc81a42610a66775099e9..6c86eeff86c5f41bd88b401303a9218097a17d4a 100644 --- a/TileCalorimeter/TileConditions/TileConditions/TileCondToolOfc.h +++ b/TileCalorimeter/TileConditions/TileConditions/TileCondToolOfc.h @@ -14,7 +14,6 @@ // Tile includes #include "TileConditions/ITileCondToolOfc.h" #include "TileConditions/TileInfo.h" -// #include "TileConditions/TileCondToolNoiseSample.h" #include "TileConditions/TileCondToolAutoCr.h" #include "TileConditions/TileCondToolPulseShape.h" @@ -39,7 +38,8 @@ class IdContext; * Optionally, it can create cache table of OFCs with 1-ns step to minimize * CPU time. Also, by request, unity A/C matrix can be used. */ -class TileCondToolOfc: public AthAlgTool, public ITileCondToolOfc { +class TileCondToolOfc: public extends<AthAlgTool, ITileCondToolOfc> { + public: TileCondToolOfc(const std::string& type, const std::string& name, const IInterface* parent); @@ -47,7 +47,6 @@ class TileCondToolOfc: public AthAlgTool, public ITileCondToolOfc { StatusCode initialize(); StatusCode finalize(); - static const InterfaceID& interfaceID(); void CalcWeights(unsigned int drawerIdx, unsigned int channel, int gain, float phase, bool of2); @@ -72,9 +71,12 @@ class TileCondToolOfc: public AthAlgTool, public ITileCondToolOfc { typedef std::map<int, std::unique_ptr<TileOfcWeightsStruct> > OfcPhaseCache; std::vector<std::unique_ptr<OfcPhaseCache> > m_ofc_phase_cache; - ToolHandle<TileCondToolPulseShape> m_tileToolPulseShape; - ToolHandle<TileCondToolAutoCr> m_tileToolAutoCr; - // ToolHandle<TileCondToolNoiseSample> m_tileToolNoiseSample; + ToolHandle<TileCondToolPulseShape> m_tileToolPulseShape{this, + "TileCondToolPulseShape", "TileCondToolPulseShape", "Tile pulse shape tool"}; + + ToolHandle<TileCondToolAutoCr> m_tileToolAutoCr{this, + "TileCondToolAutoCr", "TileCondToolAutoCr", "Tile auto correlation matrix tool"}; + const TileInfo* m_tileInfo; TileOfcWeightsStruct m_weights; diff --git a/TileCalorimeter/TileConditions/src/TileCellNoiseTool.cxx b/TileCalorimeter/TileConditions/src/TileCellNoiseTool.cxx index abf865ba8ee8a99f5855fe78c485ea4ef8c6257d..aafc6f5a2348c309c64edd3ee37992999d0fa433 100644 --- a/TileCalorimeter/TileConditions/src/TileCellNoiseTool.cxx +++ b/TileCalorimeter/TileConditions/src/TileCellNoiseTool.cxx @@ -1,13 +1,11 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ // Tile includes #include "TileConditions/TileCellNoiseTool.h" -#include "TileConditions/ITileCondToolNoise.h" #include "TileConditions/TileCablingSvc.h" -#include "TileConditions/TileCondIdTransforms.h" #include "TileConditions/Exception.h" // Athena includes @@ -16,26 +14,14 @@ #include <cmath> #include <algorithm> -// -//____________________________________________________________________ -static const InterfaceID IID_TileCellNoiseTool("TileCellNoiseTool", 1, 0); -const InterfaceID& -TileCellNoiseTool::interfaceID() { - return IID_TileCellNoiseTool; -} // //____________________________________________________________________ TileCellNoiseTool::TileCellNoiseTool(const std::string& type, const std::string& name, - const IInterface* parent) - : AthAlgTool(type, name, parent) + const IInterface* parent) + : base_class(type, name, parent) , m_tileCabling("TileCablingSvc", name) - , m_tileIdTrans("TileCondIdTransforms") - , m_tileToolNoise("TileCondToolNoiseSample") { - declareInterface<ITileCellNoiseTool>(this); - declareInterface<TileCellNoiseTool>(this); - declareProperty("NoiseSource", m_tileToolNoise, "Source for cell noise computation"); } // diff --git a/TileCalorimeter/TileConditions/src/TileCondToolOfc.cxx b/TileCalorimeter/TileConditions/src/TileCondToolOfc.cxx index 4d475036242360ba7b1b440ea2c5ef861d70979c..73964c04169aabe52b958bedc64a8d12ebebb70d 100644 --- a/TileCalorimeter/TileConditions/src/TileCondToolOfc.cxx +++ b/TileCalorimeter/TileConditions/src/TileCondToolOfc.cxx @@ -2,40 +2,28 @@ Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration */ -// Athena includes -#include "AthenaKernel/errorcheck.h" - // Tile includes #include "TileConditions/TileCondToolOfc.h" #include "TileConditions/TileCablingService.h" #include "TileConditions/TileCablingSvc.h" +// Athena includes +#include "AthenaKernel/errorcheck.h" -// -//____________________________________________________________________ -const InterfaceID& TileCondToolOfc::interfaceID() { - return ITileCondToolOfc::interfaceID(); -} // //____________________________________________________________________ TileCondToolOfc::TileCondToolOfc(const std::string& type, const std::string& name, - const IInterface* parent) - : AthAlgTool(type, name, parent) - , m_tileToolPulseShape("TileCondToolPulseShape") - , m_tileToolAutoCr("TileCondToolAutoCr") -// , m_tileToolNoiseSample("TileCondToolNoiseSample") + const IInterface* parent) + : base_class(type, name, parent) , m_tileInfo(0) , m_maxChannels(0) , m_maxGains(0) , m_drawerCacheSize(0) { - declareInterface<ITileCondToolOfc>(this); declareProperty("nSamples", m_nSamples = 7, "number of samples used in the run"); declareProperty("OptFilterDeltaCorrelation", m_deltaCorrelation = false , "true=> use delta correlation; false=>use calculation obtained from data"); - declareProperty("TileCondToolPulseShape", m_tileToolPulseShape); - declareProperty("TileCondToolAutoCr", m_tileToolAutoCr); declareProperty("CacheSize", m_cache = 0, ">0 create cache; ==0 calculate on-fly"); m_t0Sample = (m_nSamples - 1) / 2; @@ -54,16 +42,16 @@ StatusCode TileCondToolOfc::initialize() { ATH_MSG_INFO( "In initialize()" ); //=== Get TileCondToolPulseShape - CHECK( m_tileToolPulseShape.retrieve() ); + ATH_CHECK( m_tileToolPulseShape.retrieve() ); if (!m_deltaCorrelation) { - CHECK(m_tileToolAutoCr.retrieve()); + ATH_CHECK(m_tileToolAutoCr.retrieve()); } else { m_tileToolAutoCr.disable(); } //==== TileInfo - CHECK( detStore()->retrieve(m_tileInfo, "TileInfo") ); + ATH_CHECK( detStore()->retrieve(m_tileInfo, "TileInfo") ); if (m_nSamples != m_tileInfo->NdigitSamples()) { ATH_MSG_WARNING( "Changing number of samples from " << m_nSamples @@ -89,7 +77,7 @@ StatusCode TileCondToolOfc::initialize() { //=== Initialize max values ServiceHandle<TileCablingSvc> cablingSvc("TileCablingSvc", name()); - CHECK( cablingSvc.retrieve()); + ATH_CHECK( cablingSvc.retrieve()); const TileCablingService* cabling = cablingSvc->cablingService(); if (!cabling) { diff --git a/TileCalorimeter/TileRecUtils/share/TileCellBuilderFromHit_test.ref b/TileCalorimeter/TileRecUtils/share/TileCellBuilderFromHit_test.ref index bc58e6d2db485168f66215cd9b1a7cd1bf4ea5ba..ca8b5349729fb8374273035934d23c553812ad8f 100644 --- a/TileCalorimeter/TileRecUtils/share/TileCellBuilderFromHit_test.ref +++ b/TileCalorimeter/TileRecUtils/share/TileCellBuilderFromHit_test.ref @@ -1,16 +1,16 @@ -Thu Nov 22 00:10:41 EST 2018 -WARNING: TCMALLOCDIR not defined, will use libc malloc +Thu Dec 6 06:13:53 CET 2018 +Preloading tcmalloc_minimal.so Py:Athena INFO including file "AthenaCommon/Preparation.py" -Py:Athena INFO using release [?-21.0.0] [i686-slc5-gcc43-dbg] [?/?] -- built on [?] +Py:Athena INFO using release [AthenaWorkDir-22.0.1] [x86_64-slc6-gcc62-dbg] [atlas-work3/fa0fd6d0989] -- built on [2018-12-06T0537] Py:Athena INFO including file "AthenaCommon/Atlas.UnixStandardJob.py" Py:Athena INFO executing ROOT6Setup Py:Athena INFO including file "AthenaCommon/Execution.py" Py:Athena INFO including file "TileRecUtils/TileCellBuilderFromHit_test.py" -SetGeometryVersion.py obtained major release version 21 +[?1034hSetGeometryVersion.py obtained major release version 22 Py:Athena INFO including file "IdDictDetDescrCnv/IdDictDetDescrCnv_joboptions.py" -Py:ConfigurableDb INFO Read module info for 4736 configurables from 2 genConfDb files +Py:ConfigurableDb INFO Read module info for 5473 configurables from 61 genConfDb files Py:ConfigurableDb INFO No duplicates have been found: that's good ! -EventInfoMgtInit: Got release version sss-rel_0 +EventInfoMgtInit: Got release version Athena-22.0.1 Py:IOVDbSvc.CondDB INFO Setting up conditions DB access to instance OFLP200 Py:Athena INFO including file "TileConditions/TileConditions_jobOptions.py" Py:TileInfoConf. INFO Adding TileCablingSvc to ServiceMgr @@ -24,13 +24,12 @@ Py:TileInfoConf. INFO Changing default TileCondToolNoiseSample configuration Py:TileInfoConf. INFO Changing default TileCondToolTiming configuration to COOL source Py:TileConditions_jobOptions.py INFO Adjusting TileInfo to return cell noise for Opt.Filter without iterations Py:Athena INFO including file "AthenaCommon/runbatch.py" -# setting LC_ALL to "C" ApplicationMgr INFO Updating Gaudi::PluginService::SetDebug(level) to level= 'PluginDebugLevel':0 ApplicationMgr INFO Updating Gaudi::PluginService::SetDebug(level) to level= 'PluginDebugLevel':0 ApplicationMgr SUCCESS ==================================================================================================================================== - Welcome to ApplicationMgr (GaudiCoreSvc v27r1p99) - running on karma on Thu Nov 22 00:10:49 2018 + Welcome to ApplicationMgr (GaudiCoreSvc v30r5) + running on lxplus071.cern.ch on Thu Dec 6 06:14:14 2018 ==================================================================================================================================== ApplicationMgr INFO Successfully loaded modules : AthenaServices ApplicationMgr INFO Application Manager Configured successfully @@ -38,7 +37,7 @@ ApplicationMgr INFO Updating Gaudi::PluginService::SetDebug(level) to leve StatusCodeSvc INFO initialize AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry -ClassIDSvc INFO getRegistryEntries: read 7383 CLIDRegistry entries for module ALL +ClassIDSvc INFO getRegistryEntries: read 6946 CLIDRegistry entries for module ALL CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) MetaDataSvc INFO Initializing MetaDataSvc - package version AthenaServices-00-00-00 @@ -46,22 +45,22 @@ AthenaPoolCnvSvc INFO Initializing AthenaPoolCnvSvc - package version Athena PoolSvc INFO io_register[PoolSvc](xmlcatalog_file:PoolFileCatalog.xml) [ok] PoolSvc INFO Set connectionsvc retry/timeout/IDLE timeout to 'ConnectionRetrialPeriod':300/ 'ConnectionRetrialTimeOut':3600/ 'ConnectionTimeOut':5 seconds with connection cleanup disabled PoolSvc INFO Frontier compression level set to 5 -DBReplicaSvc INFO Read replica configuration from /home/sss/atlas/rootaccess/build/share/dbreplica.config -DBReplicaSvc INFO No specific match for domain found - use default fallback -DBReplicaSvc INFO Total of 1 servers found for host karma [atlas_dd ] +DBReplicaSvc INFO Frontier server at (serverurl=http://atlasfrontier-local.cern.ch:8000/atlr)(serverurl=http://atlasfrontier-ai.cern.ch:8000/atlr)(serverurl=http://lcgft-atlas.gridpp.rl.ac.uk:3128/frontierATLAS)(serverurl=http://ccfrontier.in2p3.fr:23128/ccin2p3-AtlasFrontier)(proxyurl=http://ca-proxy.cern.ch:3128)(proxyurl=http://ca-proxy-meyrin.cern.ch:3128)(proxyurl=http://ca-proxy-wigner.cern.ch:3128)(proxyurl=http://atlasbpfrontier.cern.ch:3127)(proxyurl=http://atlasbpfrontier.fnal.gov:3127) will be considered for COOL data +DBReplicaSvc INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/dbreplica.config +DBReplicaSvc INFO Total of 10 servers found for host lxplus071.cern.ch [ATLF ATLAS_COOLPROD atlas_dd ATLAS_CONFIG INT8R INTR ATONR_COOL ATONR_CONF DEVDB11 ATLF ] PoolSvc INFO Successfully setup replica sorting algorithm PoolSvc INFO Setting up APR FileCatalog and Streams -PoolSvc INFO Resolved path (via DATAPATH) is /home/sss/atlas/DBRelease/current/poolcond/PoolCat_oflcond.xml -PoolSvc INFO Resolved path (via DATAPATH) is /home/sss/atlas/DBRelease/current/poolcond/PoolCat_oflcond.xml -PoolSvc WARNING Unable to locate catalog for apcfile:poolcond/PoolFileCatalog.xml check your ATLAS_POOLCOND_PATH and DATAPATH variables +PoolSvc WARNING Unable to locate catalog for prfile:poolcond/PoolCat_oflcond.xml check your ATLAS_POOLCOND_PATH and DATAPATH variables +PoolSvc WARNING Unable to locate catalog for apcfile:poolcond/PoolCat_oflcond.xml check your ATLAS_POOLCOND_PATH and DATAPATH variables +PoolSvc INFO Resolved path (via ATLAS_POOLCOND_PATH) is /cvmfs/atlas-condb.cern.ch/repo/conditions/poolcond/PoolFileCatalog.xml PoolSvc INFO POOL WriteCatalog is xmlcatalog_file:PoolFileCatalog.xml DbSession INFO Open DbSession Domain[ROOT_All] INFO > Access DbDomain READ [ROOT_All] -MetaDataSvc INFO Found MetaDataTools = PrivateToolHandleArray([]) IOVDbSvc INFO Opened read transaction for POOL PersistencySvc IOVDbSvc INFO Only 5 POOL conditions files will be open at once +IOVDbSvc INFO Cache alignment will be done in 3 slices IOVDbSvc INFO Global tag: OFLCOND-RUN12-SDR-35 set from joboptions -IOVDbSvc INFO Read from meta data only for folder /TagInfo +IOVDbFolder INFO Read from meta data only for folder /TagInfo IOVDbSvc INFO Initialised with 3 connections and 14 folders IOVDbSvc INFO Service IOVDbSvc initialised successfully IOVDbSvc INFO preLoadAddresses: Removing folder /TagInfo. It should only be in the file meta data and was not found. @@ -84,7 +83,7 @@ IOVDbSvc INFO Added taginfo remove for /TILE/OFL02/STATUS/ADC IOVDbSvc INFO Added taginfo remove for /TILE/OFL02/TIME/CHANNELOFFSET/PHY IOVDbSvc INFO Added taginfo remove for /TILE/ONL01/STATUS/ADC IOVDbSvc INFO Added taginfo remove for /LAR/LArCellPositionShift -ClassIDSvc INFO getRegistryEntries: read 1588 CLIDRegistry entries for module ALL +ClassIDSvc INFO getRegistryEntries: read 1919 CLIDRegistry entries for module ALL ClassIDSvc INFO getRegistryEntries: read 17 CLIDRegistry entries for module ALL DetDescrCnvSvc INFO initializing DetDescrCnvSvc INFO Found DetectorStore service @@ -138,7 +137,7 @@ BarrelConstruction INFO Use sagging in geometry ? 0 multi-layered version of absorbers activated, mlabs == 1 ================================================ EventPersistenc... INFO Added successfully Conversion service:DetDescrCnvSvc -ClassIDSvc INFO getRegistryEntries: read 2389 CLIDRegistry entries for module ALL +ClassIDSvc INFO getRegistryEntries: read 2398 CLIDRegistry entries for module ALL CaloIDHelper_ID... INFO in createObj: creating a TileTBID helper object in the detector store IdDictDetDescrCnv INFO in initialize IdDictDetDescrCnv INFO in createObj: creating a IdDictManager object in the detector store @@ -177,7 +176,7 @@ TileDddbManager INFO n_tileSwitches = 1 ClassIDSvc INFO getRegistryEntries: read 213 CLIDRegistry entries for module ALL CaloIDHelper_ID... INFO in createObj: creating a TileID helper object in the detector store AtlasDetectorID INFO initialize_from_dictionary - OK -TileNeighbour INFO Reading file /home/sss/atlas/rootaccess/build/share/TileNeighbour_reduced.txt +TileNeighbour INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/TileNeighbour_reduced.txt TileHWIDDetDesc... INFO in createObj: creating a TileHWID helper object in the detector store TileHWID INFO initialize_from_dictionary AtlasDetectorID INFO initialize_from_dictionary - OK @@ -189,9 +188,9 @@ CaloIDHelper_ID... INFO in createObj: creating a LArHEC_ID helper object in th AtlasDetectorID INFO initialize_from_dictionary - OK CaloIDHelper_ID... INFO in createObj: creating a LArFCAL_ID helper object in the detector store AtlasDetectorID INFO initialize_from_dictionary - OK -LArFCAL_Base_ID INFO Reading file /home/sss/atlas/rootaccess/build/share/FCal2DNeighbors-April2011.txt -LArFCAL_Base_ID INFO Reading file /home/sss/atlas/rootaccess/build/share/FCal3DNeighborsNext-April2011.txt -LArFCAL_Base_ID INFO Reading file /home/sss/atlas/rootaccess/build/share/FCal3DNeighborsPrev-April2011.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCal2DNeighbors-April2011.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCal3DNeighborsNext-April2011.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCal3DNeighborsPrev-April2011.txt CaloIDHelper_ID... INFO in createObj: creating a LArMiniFCAL_ID helper object in the detector store AtlasDetectorID INFO initialize_from_dictionary - OK LArMiniFCAL_ID INFO initialize_from_dict - LArCalorimeter dictionary does NOT contain miniFCAL description. Unable to initialize LArMiniFCAL_ID. @@ -218,11 +217,11 @@ TileInfoLoader INFO Sampling fraction for E2 cells 1/107 TileInfoLoader INFO Sampling fraction for E3 cells 1/97 TileInfoLoader INFO Sampling fraction for E4 cells 1/75 TileInfoLoader INFO Sampling fraction for E4' cells 1/75 -TileInfoLoader INFO Reading file /home/sss/atlas/rootaccess/build/share/pulsehi_physics.dat -TileInfoLoader INFO Reading file /home/sss/atlas/rootaccess/build/share/pulselo_physics.dat -TileInfoLoader INFO Reading file /home/sss/atlas/rootaccess/build/share/pulse_adder_tower_physics.dat -TileInfoLoader INFO Reading file /home/sss/atlas/rootaccess/build/share/pulse_adder_muonRcv_physics.dat -TileInfoLoader INFO Reading file /home/sss/atlas/rootaccess/build/share/pulse_adder_muon_physics.dat +TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulsehi_physics.dat +TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulselo_physics.dat +TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulse_adder_tower_physics.dat +TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulse_adder_muonRcv_physics.dat +TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulse_adder_muon_physics.dat CaloIDHelper_ID... INFO in createObj: creating a CaloLVL1_ID helper object in the detector store CaloLVL1_ID INFO initialize_from_dictionary AtlasDetectorID INFO initialize_from_dictionary - OK @@ -231,12 +230,12 @@ TileCablingSvc INFO Cabling for RUN2 (2014-2017) ATLAS geometry is set via TileCablingSvc INFO Setting Cabling type to 4 TileInfoLoader INFO Placed TileInfo object in the detector store. ToolSvc.TileBad... INFO Creating TileCondProxyCool(ToolSvc.TileBadChanLegacyTool.TileCondProxyCool_OnlBch) for folder: "/TILE/ONL01/STATUS/ADC" -IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileCondProxyCool<TileCalibDrawerBch>[0x555d216a4960]+7fc4b327e210 bound to CondAttrListCollection[/TILE/ONL01/STATUS/ADC] +IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileCondProxyCool<TileCalibDrawerBch>[0x1dbab600]+7fb64bf1ea54 bound to CondAttrListCollection[/TILE/ONL01/STATUS/ADC] ToolSvc.TileBad... INFO Creating TileCondProxyCool(ToolSvc.TileBadChanLegacyTool.TileCondProxyCool_OflBch) for folder: "/TILE/OFL02/STATUS/ADC" -IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileCondProxyCool<TileCalibDrawerBch>[0x555d214734d0]+7fc4b327e210 bound to CondAttrListCollection[/TILE/OFL02/STATUS/ADC] +IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileCondProxyCool<TileCalibDrawerBch>[0x1dbacc00]+7fb64bf1ea54 bound to CondAttrListCollection[/TILE/OFL02/STATUS/ADC] ToolSvc.TileBad... INFO ProxyOnlBch and ProxyOflBch will be used for bad channel status -IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileBadChanLegacyTool[0x555d20ff4d30]+7fc4b32152b0 bound to /TILE/ONL01/STATUS/ADC -IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileBadChanLegacyTool[0x555d20ff4d30]+7fc4b32152b0 bound to /TILE/OFL02/STATUS/ADC +IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileBadChanLegacyTool[0xc704000]+7fb64bd38c6e bound to /TILE/ONL01/STATUS/ADC +IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileBadChanLegacyTool[0xc704000]+7fb64bd38c6e bound to /TILE/OFL02/STATUS/ADC AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00 ClassIDSvc INFO getRegistryEntries: read 265 CLIDRegistry entries for module ALL CondInputLoader INFO Initializing CondInputLoader... @@ -282,15 +281,15 @@ TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCond TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OnlEms) for folder: "/TILE/OFL02/CALIB/EMS" TileSampleNoise... INFO Creating TileCondProxyCool(TileSampleNoiseCondAlg.TileCondProxyCool_NoiseSample) for folder: "/TILE/OFL02/NOISE/SAMPLE" TileTimingCondA... INFO Creating TileCondProxyCool(TileTimingCondAlg.TileCondProxyCool_AdcOffset) for folder: "/TILE/OFL02/TIME/CHANNELOFFSET/PHY" -tilecellbuilder... INFO Creating TileCondProxyFile(tilecellbuilder_bct1Cond.tilecellbuilder_bct1_onl) for ASCII file name: "/home/sss/atlas/rootaccess/build/share/TileNoBad.oflBch" -tilecellbuilder... INFO Creating TileCondProxyFile(tilecellbuilder_bct1Cond.tilecellbuilder_bct1_ofl) for ASCII file name: "/home/sss/atlas/rootaccess/build/share/TileNoBad.oflBch" +tilecellbuilder... INFO Creating TileCondProxyFile(tilecellbuilder_bct1Cond.tilecellbuilder_bct1_onl) for ASCII file name: "/cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/TileNoBad.oflBch" +tilecellbuilder... INFO Creating TileCondProxyFile(tilecellbuilder_bct1Cond.tilecellbuilder_bct1_ofl) for ASCII file name: "/cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/TileNoBad.oflBch" tilecellbuilder... INFO ProxyOnlBch and ProxyOflBch will be used for bad channel status -tilecellbuilder... INFO Creating TileCondProxyFile(tilecellbuilder_bct2Cond.tilecellbuilder_bct2_onl) for ASCII file name: "/home/sss/atlas/rootaccess/build/share/TileNoBad.oflBch" -tilecellbuilder... INFO Creating TileCondProxyFile(tilecellbuilder_bct2Cond.tilecellbuilder_bct2_ofl) for ASCII file name: "/home/sss/nobackup/atlas/build/../tests/tilecellbuilder_bct2.bch" +tilecellbuilder... INFO Creating TileCondProxyFile(tilecellbuilder_bct2Cond.tilecellbuilder_bct2_onl) for ASCII file name: "/cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/TileNoBad.oflBch" +tilecellbuilder... INFO Creating TileCondProxyFile(tilecellbuilder_bct2Cond.tilecellbuilder_bct2_ofl) for ASCII file name: "/afs/cern.ch/work/s/ssnyder/builds/atlas-work3/build-x86_64-slc6-gcc62-dbg/TileCalorimeter/TileRecUtils/unitTestRun/tilecellbuilder_bct2.bch" tilecellbuilder... INFO ProxyOnlBch and ProxyOflBch will be used for bad channel status PyComponentMgr INFO Initializing PyComponentMgr... testalg1 INFO Initializing testalg1... -ClassIDSvc INFO getRegistryEntries: read 9582 CLIDRegistry entries for module ALL +ClassIDSvc INFO getRegistryEntries: read 5259 CLIDRegistry entries for module ALL ToolSvc.tool1 INFO Storing MBTS cells in MBTSContainer ToolSvc.tool1 INFO Noise Sigma 0 MeV is selected! AtRndmGenSvc INFO Initializing AtRndmGenSvc - package version RngComps-00-00-00 @@ -339,26 +338,24 @@ EventPersistenc... INFO Added successfully Conversion service:AthenaPoolCnvSvc EventPersistenc... INFO Added successfully Conversion service:TagInfoMgr ClassIDSvc INFO getRegistryEntries: read 109 CLIDRegistry entries for module ALL IOVDbSvc INFO Opening COOL connection for COOLOFL_LAR/OFLP200 -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to LARAlign-IOVDEP-00 for folder /LAR/Align -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to LArCellPositionShift-ideal for folder /LAR/LArCellPositionShift +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to LARAlign-IOVDEP-00 for folder /LAR/Align +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to LArCellPositionShift-ideal for folder /LAR/LArCellPositionShift IOVDbSvc INFO Disconnecting from COOLOFL_LAR/OFLP200 IOVDbSvc INFO Opening COOL connection for COOLOFL_TILE/OFLP200 -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCes-SIM-06 for folder /TILE/OFL02/CALIB/CES -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCisFitLin-COM-00 for folder /TILE/OFL02/CALIB/CIS/FIT/LIN -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCisFitNln-COM-00 for folder /TILE/OFL02/CALIB/CIS/FIT/NLN -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibEms-COM-00 for folder /TILE/OFL02/CALIB/EMS -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasFiber-000-00 for folder /TILE/OFL02/CALIB/LAS/FIBER -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasLin-COM-00 for folder /TILE/OFL02/CALIB/LAS/LIN -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasNln-COM-00 for folder /TILE/OFL02/CALIB/LAS/NLN -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02NoiseSample-TwoGauss-19 for folder /TILE/OFL02/NOISE/SAMPLE -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02StatusAdc-IOVDEP-03 for folder /TILE/OFL02/STATUS/ADC -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02TimeChanneloffsetPhy-000-00 for folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCes-SIM-06 for folder /TILE/OFL02/CALIB/CES +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCisFitLin-COM-00 for folder /TILE/OFL02/CALIB/CIS/FIT/LIN +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCisFitNln-COM-00 for folder /TILE/OFL02/CALIB/CIS/FIT/NLN +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibEms-COM-00 for folder /TILE/OFL02/CALIB/EMS +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasFiber-000-00 for folder /TILE/OFL02/CALIB/LAS/FIBER +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasLin-COM-00 for folder /TILE/OFL02/CALIB/LAS/LIN +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasNln-COM-00 for folder /TILE/OFL02/CALIB/LAS/NLN +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02NoiseSample-TwoGauss-19 for folder /TILE/OFL02/NOISE/SAMPLE +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02StatusAdc-IOVDEP-03 for folder /TILE/OFL02/STATUS/ADC +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02TimeChanneloffsetPhy-000-00 for folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY IOVDbSvc INFO Disconnecting from COOLOFL_TILE/OFLP200 -DbSession INFO Open DbSession -Domain[ROOT_All] INFO > Access DbDomain READ [ROOT_All] Domain[ROOT_All] INFO -> Access DbDatabase READ [ROOT_All] EACFEBD4-9BD2-E211-848A-02163E006B20 -Domain[ROOT_All] INFO /home/sss/atlas/DBRelease/current/poolcond/cond09_mc.000057.gen.COND/cond09_mc.000057.gen.COND._0001.pool.root -RootDatabase.open INFO /home/sss/atlas/DBRelease/current/poolcond/cond09_mc.000057.gen.COND/cond09_mc.000057.gen.COND._0001.pool.root File version:52200 +Domain[ROOT_All] INFO /cvmfs/atlas-condb.cern.ch/repo/conditions/cond09/cond09_mc.000057.gen.COND/cond09_mc.000057.gen.COND._0001.pool.root +RootDatabase.open INFO /cvmfs/atlas-condb.cern.ch/repo/conditions/cond09/cond09_mc.000057.gen.COND/cond09_mc.000057.gen.COND._0001.pool.root File version:52200 ToolSvc.TileBad... INFO ToolSvc.TileBadChanLegacyTool.TileCondProxyCool_OnlBch: callback has been triggered by: /TILE/ONL01/STATUS/ADC ToolSvc.TileBad... INFO ToolSvc.TileBadChanLegacyTool.TileCondProxyCool_OflBch: callback has been triggered by: /TILE/OFL02/STATUS/ADC CaloMgrDetDescrCnv INFO in createObj: creating a Calo Detector Manager object in the detector store @@ -377,18 +374,18 @@ CaloIDHelper_ID... INFO in createObj: creating a LArHEC_SuperCell_ID helper ob AtlasDetectorID INFO initialize_from_dictionary - OK CaloIDHelper_ID... INFO in createObj: creating a LArFCAL_SuperCell_ID helper object in the detector store AtlasDetectorID INFO initialize_from_dictionary - OK -LArFCAL_Base_ID INFO Reading file /home/sss/atlas/rootaccess/build/share/FCalSuperCells2DNeighborsNew-April2014.txt -LArFCAL_Base_ID INFO Reading file /home/sss/atlas/rootaccess/build/share/FCalSuperCells3DNeighborsNextNew-April2014.txt -LArFCAL_Base_ID INFO Reading file /home/sss/atlas/rootaccess/build/share/FCalSuperCells3DNeighborsPrevNew-April2014.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells2DNeighborsNew-April2014.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells3DNeighborsNextNew-April2014.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells3DNeighborsPrevNew-April2014.txt CaloIDHelper_ID... INFO in createObj: creating a Tile_SuperCell_ID helper object in the detector store AtlasDetectorID INFO initialize_from_dictionary - OK -TileNeighbour INFO Reading file /home/sss/atlas/rootaccess/build/share/TileSuperCellNeighbour.txt +TileNeighbour INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/TileSuperCellNeighbour.txt AtlasDetectorID INFO initialize_from_dictionary - OK CaloIdMgrDetDes... INFO Finished CaloIdMgrDetDes... INFO Initializing CaloIdMgr from values in CaloIdMgrDetDescrCnv Domain[ROOT_All] INFO -> Access DbDatabase READ [ROOT_All] 8667C6F2-1559-DE11-A611-000423D9A21A -Domain[ROOT_All] INFO /home/sss/atlas/DBRelease/current/poolcond/cond08_mc.000003.gen.COND/cond08_mc.000003.gen.COND._0064.pool.root -RootDatabase.open INFO /home/sss/atlas/DBRelease/current/poolcond/cond08_mc.000003.gen.COND/cond08_mc.000003.gen.COND._0064.pool.root File version:52200 +Domain[ROOT_All] INFO /cvmfs/atlas-condb.cern.ch/repo/conditions/cond08/cond08_mc.000003.gen.COND/cond08_mc.000003.gen.COND._0064.pool.root +RootDatabase.open INFO /cvmfs/atlas-condb.cern.ch/repo/conditions/cond08/cond08_mc.000003.gen.COND/cond08_mc.000003.gen.COND._0064.pool.root File version:52200 ToolSvc.TileBad... INFO TileBadChanLegacyTool::recache() has been triggered by: '/TILE/OFL02/STATUS/ADC' '/TILE/ONL01/STATUS/ADC' ToolSvc.TileBad... INFO Updating TileBchStatus::isBad() definition from DB ToolSvc.TileBad... INFO Updating TileBchStatus::isNoisy() definition from DB @@ -409,8 +406,8 @@ TileBadChannels... INFO TileBchStatus::isNoisy() is defined by: Large HF noise TileBadChannels... INFO TileBchStatus::isNoGainL1() is defined by: ADC dead; No PMT connected; No HV; Channel masked for LV1 (unspecified); LV1 channel no gain; LV1 channel noisy; Channel disabled for LV1; TileBadChannels... INFO TileBchStatus::isBadTiming() is defined by: Bad timing; Online bad timing; TileBadChannels... INFO No drawer trips probabilities found in DB -tilecellbuilder... INFO Creating TileCondProxyFile(tilecellbuilder_bct1Cond.tilecellbuilder_bct1_onl) for ASCII file name: "/home/sss/atlas/rootaccess/build/share/TileNoBad.oflBch" -tilecellbuilder... INFO Creating TileCondProxyFile(tilecellbuilder_bct1Cond.tilecellbuilder_bct1_ofl) for ASCII file name: "/home/sss/atlas/rootaccess/build/share/TileNoBad.oflBch" +tilecellbuilder... INFO Creating TileCondProxyFile(tilecellbuilder_bct1Cond.tilecellbuilder_bct1_onl) for ASCII file name: "/cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/TileNoBad.oflBch" +tilecellbuilder... INFO Creating TileCondProxyFile(tilecellbuilder_bct1Cond.tilecellbuilder_bct1_ofl) for ASCII file name: "/cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/TileNoBad.oflBch" tilecellbuilder... INFO No TileBchStatus::isBad() definition found in DB, using defaults tilecellbuilder... INFO No TileBchStatus::isNoisy() definition found in DB, using defaults tilecellbuilder... INFO No TileBchStatus::isNoGainL1() definition found in DB, using defaults @@ -420,8 +417,8 @@ tilecellbuilder... INFO TileBchStatus::isNoisy() is defined by: Large HF noise tilecellbuilder... INFO TileBchStatus::isNoGainL1() is defined by: ADC dead; No PMT connected; No HV; Channel masked for LV1 (unspecified); LV1 channel no gain; LV1 channel noisy; Channel disabled for LV1; tilecellbuilder... INFO TileBchStatus::isBadTiming() is defined by: Bad timing; Online bad timing; tilecellbuilder... INFO No drawer trips probabilities found in DB -tilecellbuilder... INFO Creating TileCondProxyFile(tilecellbuilder_bct2Cond.tilecellbuilder_bct2_onl) for ASCII file name: "/home/sss/atlas/rootaccess/build/share/TileNoBad.oflBch" -tilecellbuilder... INFO Creating TileCondProxyFile(tilecellbuilder_bct2Cond.tilecellbuilder_bct2_ofl) for ASCII file name: "/home/sss/nobackup/atlas/build/../tests/tilecellbuilder_bct2.bch" +tilecellbuilder... INFO Creating TileCondProxyFile(tilecellbuilder_bct2Cond.tilecellbuilder_bct2_onl) for ASCII file name: "/cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/TileNoBad.oflBch" +tilecellbuilder... INFO Creating TileCondProxyFile(tilecellbuilder_bct2Cond.tilecellbuilder_bct2_ofl) for ASCII file name: "/afs/cern.ch/work/s/ssnyder/builds/atlas-work3/build-x86_64-slc6-gcc62-dbg/TileCalorimeter/TileRecUtils/unitTestRun/tilecellbuilder_bct2.bch" tilecellbuilder... INFO No TileBchStatus::isBad() definition found in DB, using defaults tilecellbuilder... INFO No TileBchStatus::isNoisy() definition found in DB, using defaults tilecellbuilder... INFO No TileBchStatus::isNoGainL1() definition found in DB, using defaults @@ -431,16 +428,17 @@ tilecellbuilder... INFO TileBchStatus::isNoisy() is defined by: Large HF noise tilecellbuilder... INFO TileBchStatus::isNoGainL1() is defined by: ADC dead; No PMT connected; No HV; Channel masked for LV1 (unspecified); LV1 channel no gain; LV1 channel noisy; Channel disabled for LV1; tilecellbuilder... INFO TileBchStatus::isBadTiming() is defined by: Bad timing; Online bad timing; tilecellbuilder... INFO No drawer trips probabilities found in DB -ClassIDSvc INFO getRegistryEntries: read 654 CLIDRegistry entries for module ALL +ClassIDSvc INFO getRegistryEntries: read 650 CLIDRegistry entries for module ALL +IncrementalExecutor::executeFunction: symbol '_ZNK7TileHitcvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEv' unresolved while linking function '__cxx_global_var_initcling_module_5162_'! +You are probably missing the definition of TileHit::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >() const +Maybe you need to load the corresponding shared library? +IncrementalExecutor::executeFunction: symbol '_ZNK7TileHitcvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEv' unresolved while linking function '__cxx_global_var_initcling_module_5177_'! +You are probably missing the definition of TileHit::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >() const +Maybe you need to load the corresponding shared library? ClassIDSvc INFO getRegistryEntries: read 194 CLIDRegistry entries for module ALL ClassIDSvc INFO getRegistryEntries: read 8 CLIDRegistry entries for module ALL AtRndmGenSvc INFO Stream = Tile_DigitsMaker, Seed1 = 288581169, Seed2 = 758068585 AthenaEventLoopMgr INFO ===>>> done processing event #1, run #1 1 events processed so far <<<=== -/home/sss/atlas... INFO Database being retired... -Domain[ROOT_All] INFO -> Deaccess DbDatabase READ [ROOT_All] EACFEBD4-9BD2-E211-848A-02163E006B20 -/home/sss/atlas... INFO Database being retired... -Domain[ROOT_All] INFO -> Deaccess DbDatabase READ [ROOT_All] 8667C6F2-1559-DE11-A611-000423D9A21A -Domain[ROOT_All] INFO > Deaccess DbDomain READ [ROOT_All] AthenaEventLoopMgr INFO ===>>> start processing event #2, run #1 1 events processed so far <<<=== AtRndmGenSvc INFO Stream = Tile_DigitsMaker, Seed1 = 1959006884, Seed2 = 1693617434 AthenaEventLoopMgr INFO ===>>> done processing event #2, run #1 2 events processed so far <<<=== @@ -449,6 +447,10 @@ AtRndmGenSvc INFO Stream = Tile_DigitsMaker, Seed1 = 2049887984, Seed AthenaEventLoopMgr INFO ===>>> done processing event #3, run #1 3 events processed so far <<<=== TileInfoLoader INFO Handling EndRun incident TileInfoLoader INFO Removed TileInfo object from detector store. +/cvmfs/atlas-co... INFO Database being retired... +Domain[ROOT_All] INFO -> Deaccess DbDatabase READ [ROOT_All] EACFEBD4-9BD2-E211-848A-02163E006B20 +/cvmfs/atlas-co... INFO Database being retired... +Domain[ROOT_All] INFO -> Deaccess DbDatabase READ [ROOT_All] 8667C6F2-1559-DE11-A611-000423D9A21A Domain[ROOT_All] INFO > Deaccess DbDomain READ [ROOT_All] ApplicationMgr INFO Application Manager Stopped successfully IncidentProcAlg1 INFO Finalize @@ -458,23 +460,23 @@ IncidentProcAlg2 INFO Finalize AtRndmGenSvc INFO FINALISING PyComponentMgr INFO Finalizing PyComponentMgr... IdDictDetDescrCnv INFO in finalize -IOVDbSvc INFO Folder /LAR/Align (PoolRef) db-read 1/1 objs/chan/bytes 1/1/170 (( 0.14 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/CES (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/103344 (( 0.15 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/CIS/FIT/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/80 (( 0.01 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/CIS/FIT/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/80 (( 0.01 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/EMS (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/92 (( 0.01 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/LAS/FIBER (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/940 (( 0.01 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/LAS/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/72 (( 0.01 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/LAS/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/76 (( 0.01 ))s -IOVDbSvc INFO Folder /TILE/OFL02/NOISE/SAMPLE (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/641476 (( 0.01 ))s -IOVDbSvc INFO Folder /TILE/OFL02/STATUS/ADC (AttrListColl) db-read 1/2 objs/chan/bytes 277/277/97884 (( 0.01 ))s -IOVDbSvc INFO Folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/96 (( 0.01 ))s -IOVDbSvc INFO Folder /TILE/ONL01/STATUS/ADC (AttrListColl) db-read 1/2 objs/chan/bytes 277/277/76 (( 0.01 ))s -IOVDbSvc INFO Folder /LAR/LArCellPositionShift (PoolRef) db-read 1/1 objs/chan/bytes 1/1/195 (( 0.00 ))s -IOVDbSvc INFO Total payload read from COOL: 844581 bytes in (( 0.38 ))s +IOVDbFolder INFO Folder /LAR/Align (PoolRef) db-read 1/1 objs/chan/bytes 1/1/170 (( 0.25 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CES (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/103344 (( 0.24 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/80 (( 0.06 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/80 (( 0.05 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/EMS (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/92 (( 0.04 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/FIBER (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/940 (( 0.05 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/72 (( 0.05 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/76 (( 0.05 ))s +IOVDbFolder INFO Folder /TILE/OFL02/NOISE/SAMPLE (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/641476 (( 0.08 ))s +IOVDbFolder INFO Folder /TILE/OFL02/STATUS/ADC (AttrListColl) db-read 1/2 objs/chan/bytes 277/277/97884 (( 0.05 ))s +IOVDbFolder INFO Folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/96 (( 0.04 ))s +IOVDbFolder INFO Folder /TILE/ONL01/STATUS/ADC (AttrListColl) db-read 1/2 objs/chan/bytes 277/277/76 (( 0.02 ))s +IOVDbFolder INFO Folder /LAR/LArCellPositionShift (PoolRef) db-read 1/1 objs/chan/bytes 1/1/195 (( 0.03 ))s +IOVDbSvc INFO bytes in (( 1.00 ))s IOVDbSvc INFO Connection sqlite://;schema=mycool.db;dbname=OFLP200 : nConnect: 0 nFolders: 0 ReadTime: (( 0.00 ))s -IOVDbSvc INFO Connection COOLOFL_LAR/OFLP200 : nConnect: 2 nFolders: 2 ReadTime: (( 0.14 ))s -IOVDbSvc INFO Connection COOLOFL_TILE/OFLP200 : nConnect: 2 nFolders: 11 ReadTime: (( 0.24 ))s +IOVDbSvc INFO Connection COOLOFL_LAR/OFLP200 : nConnect: 2 nFolders: 2 ReadTime: (( 0.27 ))s +IOVDbSvc INFO Connection COOLOFL_TILE/OFLP200 : nConnect: 2 nFolders: 11 ReadTime: (( 0.72 ))s TileInfoLoader INFO TileInfoLoader::finalize() AthDictLoaderSvc INFO in finalize... ToolSvc INFO Removing all tools created by ToolSvc @@ -484,9 +486,9 @@ ToolSvc.tool1 INFO Finalizing *****Chrono***** INFO **************************************************************************************************** *****Chrono***** INFO The Final CPU consumption ( Chrono ) Table (ordered) *****Chrono***** INFO **************************************************************************************************** -cObjR_ALL INFO Time User : Tot= 0.66 [s] Ave/Min/Max= 0.33(+- 0.32)/ 0.01/ 0.65 [s] #= 2 -cObj_ALL INFO Time User : Tot= 0.82 [s] Ave/Min/Max=0.0547(+-0.184)/ 0/ 0.74 [s] #= 15 -ChronoStatSvc INFO Time User : Tot= 57.9 [s] #= 1 +cObjR_ALL INFO Time User : Tot= 0.83 [s] Ave/Min/Max=0.415(+-0.395)/ 0.02/ 0.81 [s] #= 2 +cObj_ALL INFO Time User : Tot= 1.09 [s] Ave/Min/Max=0.0727(+- 0.23)/ 0/ 0.92 [s] #= 15 +ChronoStatSvc INFO Time User : Tot= 68.3 [s] #= 1 *****Chrono***** INFO **************************************************************************************************** ChronoStatSvc.f... INFO Service finalized successfully ApplicationMgr INFO Application Manager Finalized successfully diff --git a/TileCalorimeter/TileRecUtils/share/TileCellBuilder_test.ref b/TileCalorimeter/TileRecUtils/share/TileCellBuilder_test.ref index 0082b7046d5932427e6fd0fb17d677a7b675fce6..793baf43b1f1542a019c4e78fc4f4012f71a8b04 100644 --- a/TileCalorimeter/TileRecUtils/share/TileCellBuilder_test.ref +++ b/TileCalorimeter/TileRecUtils/share/TileCellBuilder_test.ref @@ -1,14 +1,14 @@ -Wed Oct 24 20:22:11 CEST 2018 +Thu Dec 6 06:00:11 CET 2018 Preloading tcmalloc_minimal.so Py:Athena INFO including file "AthenaCommon/Preparation.py" -Py:Athena INFO using release [AthenaWorkDir-22.0.1] [x86_64-slc6-gcc8-opt] [atlas-work3/39f42eb17c0] -- built on [2018-10-24T1603] +Py:Athena INFO using release [AthenaWorkDir-22.0.1] [x86_64-slc6-gcc62-dbg] [atlas-work3/fa0fd6d0989] -- built on [2018-12-06T0537] Py:Athena INFO including file "AthenaCommon/Atlas.UnixStandardJob.py" Py:Athena INFO executing ROOT6Setup Py:Athena INFO including file "AthenaCommon/Execution.py" Py:Athena INFO including file "TileRecUtils/TileCellBuilder_test.py" [?1034hSetGeometryVersion.py obtained major release version 22 Py:Athena INFO including file "IdDictDetDescrCnv/IdDictDetDescrCnv_joboptions.py" -Py:ConfigurableDb INFO Read module info for 5519 configurables from 51 genConfDb files +Py:ConfigurableDb INFO Read module info for 5473 configurables from 61 genConfDb files Py:ConfigurableDb INFO No duplicates have been found: that's good ! EventInfoMgtInit: Got release version Athena-22.0.1 Py:IOVDbSvc.CondDB INFO Setting up conditions DB access to instance OFLP200 @@ -28,8 +28,8 @@ ApplicationMgr INFO Updating Gaudi::PluginService::SetDebug(level) to leve ApplicationMgr INFO Updating Gaudi::PluginService::SetDebug(level) to level= 'PluginDebugLevel':0 ApplicationMgr SUCCESS ==================================================================================================================================== - Welcome to ApplicationMgr (GaudiCoreSvc v30r3) - running on lxplus042.cern.ch on Wed Oct 24 20:24:07 2018 + Welcome to ApplicationMgr (GaudiCoreSvc v30r5) + running on lxplus071.cern.ch on Thu Dec 6 06:00:33 2018 ==================================================================================================================================== ApplicationMgr INFO Successfully loaded modules : AthenaServices ApplicationMgr INFO Application Manager Configured successfully @@ -46,8 +46,8 @@ PoolSvc INFO io_register[PoolSvc](xmlcatalog_file:PoolFileCatalog.x PoolSvc INFO Set connectionsvc retry/timeout/IDLE timeout to 'ConnectionRetrialPeriod':300/ 'ConnectionRetrialTimeOut':3600/ 'ConnectionTimeOut':5 seconds with connection cleanup disabled PoolSvc INFO Frontier compression level set to 5 DBReplicaSvc INFO Frontier server at (serverurl=http://atlasfrontier-local.cern.ch:8000/atlr)(serverurl=http://atlasfrontier-ai.cern.ch:8000/atlr)(serverurl=http://lcgft-atlas.gridpp.rl.ac.uk:3128/frontierATLAS)(serverurl=http://ccfrontier.in2p3.fr:23128/ccin2p3-AtlasFrontier)(proxyurl=http://ca-proxy.cern.ch:3128)(proxyurl=http://ca-proxy-meyrin.cern.ch:3128)(proxyurl=http://ca-proxy-wigner.cern.ch:3128)(proxyurl=http://atlasbpfrontier.cern.ch:3127)(proxyurl=http://atlasbpfrontier.fnal.gov:3127) will be considered for COOL data -DBReplicaSvc INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-10-23T2341/Athena/22.0.1/InstallArea/x86_64-slc6-gcc8-opt/share/dbreplica.config -DBReplicaSvc INFO Total of 10 servers found for host lxplus042.cern.ch [ATLF ATLAS_COOLPROD atlas_dd ATLAS_CONFIG INT8R INTR ATONR_COOL ATONR_CONF DEVDB11 ATLF ] +DBReplicaSvc INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/dbreplica.config +DBReplicaSvc INFO Total of 10 servers found for host lxplus071.cern.ch [ATLF ATLAS_COOLPROD atlas_dd ATLAS_CONFIG INT8R INTR ATONR_COOL ATONR_CONF DEVDB11 ATLF ] PoolSvc INFO Successfully setup replica sorting algorithm PoolSvc INFO Setting up APR FileCatalog and Streams PoolSvc WARNING Unable to locate catalog for prfile:poolcond/PoolCat_oflcond.xml check your ATLAS_POOLCOND_PATH and DATAPATH variables @@ -60,7 +60,7 @@ IOVDbSvc INFO Opened read transaction for POOL PersistencySvc IOVDbSvc INFO Only 5 POOL conditions files will be open at once IOVDbSvc INFO Cache alignment will be done in 3 slices IOVDbSvc INFO Global tag: OFLCOND-RUN12-SDR-35 set from joboptions -IOVDbSvc INFO Read from meta data only for folder /TagInfo +IOVDbFolder INFO Read from meta data only for folder /TagInfo IOVDbSvc INFO Initialised with 3 connections and 14 folders IOVDbSvc INFO Service IOVDbSvc initialised successfully IOVDbSvc INFO preLoadAddresses: Removing folder /TagInfo. It should only be in the file meta data and was not found. @@ -83,7 +83,7 @@ IOVDbSvc INFO Added taginfo remove for /TILE/OFL02/STATUS/ADC IOVDbSvc INFO Added taginfo remove for /TILE/OFL02/TIME/CHANNELOFFSET/PHY IOVDbSvc INFO Added taginfo remove for /TILE/ONL01/STATUS/ADC IOVDbSvc INFO Added taginfo remove for /LAR/LArCellPositionShift -ClassIDSvc INFO getRegistryEntries: read 1917 CLIDRegistry entries for module ALL +ClassIDSvc INFO getRegistryEntries: read 1919 CLIDRegistry entries for module ALL ClassIDSvc INFO getRegistryEntries: read 17 CLIDRegistry entries for module ALL DetDescrCnvSvc INFO initializing DetDescrCnvSvc INFO Found DetectorStore service @@ -176,7 +176,7 @@ TileDddbManager INFO n_tileSwitches = 1 ClassIDSvc INFO getRegistryEntries: read 213 CLIDRegistry entries for module ALL CaloIDHelper_ID... INFO in createObj: creating a TileID helper object in the detector store AtlasDetectorID INFO initialize_from_dictionary - OK -TileNeighbour INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-10-23T2341/Athena/22.0.1/InstallArea/x86_64-slc6-gcc8-opt/share/TileNeighbour_reduced.txt +TileNeighbour INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/TileNeighbour_reduced.txt TileHWIDDetDesc... INFO in createObj: creating a TileHWID helper object in the detector store TileHWID INFO initialize_from_dictionary AtlasDetectorID INFO initialize_from_dictionary - OK @@ -188,9 +188,9 @@ CaloIDHelper_ID... INFO in createObj: creating a LArHEC_ID helper object in th AtlasDetectorID INFO initialize_from_dictionary - OK CaloIDHelper_ID... INFO in createObj: creating a LArFCAL_ID helper object in the detector store AtlasDetectorID INFO initialize_from_dictionary - OK -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-10-23T2341/Athena/22.0.1/InstallArea/x86_64-slc6-gcc8-opt/share/FCal2DNeighbors-April2011.txt -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-10-23T2341/Athena/22.0.1/InstallArea/x86_64-slc6-gcc8-opt/share/FCal3DNeighborsNext-April2011.txt -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-10-23T2341/Athena/22.0.1/InstallArea/x86_64-slc6-gcc8-opt/share/FCal3DNeighborsPrev-April2011.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCal2DNeighbors-April2011.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCal3DNeighborsNext-April2011.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCal3DNeighborsPrev-April2011.txt CaloIDHelper_ID... INFO in createObj: creating a LArMiniFCAL_ID helper object in the detector store AtlasDetectorID INFO initialize_from_dictionary - OK LArMiniFCAL_ID INFO initialize_from_dict - LArCalorimeter dictionary does NOT contain miniFCAL description. Unable to initialize LArMiniFCAL_ID. @@ -217,11 +217,11 @@ TileInfoLoader INFO Sampling fraction for E2 cells 1/107 TileInfoLoader INFO Sampling fraction for E3 cells 1/97 TileInfoLoader INFO Sampling fraction for E4 cells 1/75 TileInfoLoader INFO Sampling fraction for E4' cells 1/75 -TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-10-23T2341/Athena/22.0.1/InstallArea/x86_64-slc6-gcc8-opt/share/pulsehi_physics.dat -TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-10-23T2341/Athena/22.0.1/InstallArea/x86_64-slc6-gcc8-opt/share/pulselo_physics.dat -TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-10-23T2341/Athena/22.0.1/InstallArea/x86_64-slc6-gcc8-opt/share/pulse_adder_tower_physics.dat -TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-10-23T2341/Athena/22.0.1/InstallArea/x86_64-slc6-gcc8-opt/share/pulse_adder_muonRcv_physics.dat -TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-10-23T2341/Athena/22.0.1/InstallArea/x86_64-slc6-gcc8-opt/share/pulse_adder_muon_physics.dat +TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulsehi_physics.dat +TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulselo_physics.dat +TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulse_adder_tower_physics.dat +TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulse_adder_muonRcv_physics.dat +TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulse_adder_muon_physics.dat CaloIDHelper_ID... INFO in createObj: creating a CaloLVL1_ID helper object in the detector store CaloLVL1_ID INFO initialize_from_dictionary AtlasDetectorID INFO initialize_from_dictionary - OK @@ -230,12 +230,12 @@ TileCablingSvc INFO Cabling for RUN2 (2014-2017) ATLAS geometry is set via TileCablingSvc INFO Setting Cabling type to 4 TileInfoLoader INFO Placed TileInfo object in the detector store. ToolSvc.TileBad... INFO Creating TileCondProxyCool(ToolSvc.TileBadChanLegacyTool.TileCondProxyCool_OnlBch) for folder: "/TILE/ONL01/STATUS/ADC" -IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileCondProxyCool<TileCalibDrawerBch>[0x328c6200]+7f874013df20 bound to CondAttrListCollection[/TILE/ONL01/STATUS/ADC] +IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileCondProxyCool<TileCalibDrawerBch>[0x1c543600]+7fd0d226ea54 bound to CondAttrListCollection[/TILE/ONL01/STATUS/ADC] ToolSvc.TileBad... INFO Creating TileCondProxyCool(ToolSvc.TileBadChanLegacyTool.TileCondProxyCool_OflBch) for folder: "/TILE/OFL02/STATUS/ADC" -IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileCondProxyCool<TileCalibDrawerBch>[0x328c5700]+7f874013df20 bound to CondAttrListCollection[/TILE/OFL02/STATUS/ADC] +IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileCondProxyCool<TileCalibDrawerBch>[0x1c544c00]+7fd0d226ea54 bound to CondAttrListCollection[/TILE/OFL02/STATUS/ADC] ToolSvc.TileBad... INFO ProxyOnlBch and ProxyOflBch will be used for bad channel status -IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileBadChanLegacyTool[0x2cc87000]+7f87400cc4d0 bound to /TILE/ONL01/STATUS/ADC -IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileBadChanLegacyTool[0x2cc87000]+7f87400cc4d0 bound to /TILE/OFL02/STATUS/ADC +IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileBadChanLegacyTool[0x189ba000]+7fd0d2088c6e bound to /TILE/ONL01/STATUS/ADC +IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileBadChanLegacyTool[0x189ba000]+7fd0d2088c6e bound to /TILE/OFL02/STATUS/ADC AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00 ClassIDSvc INFO getRegistryEntries: read 265 CLIDRegistry entries for module ALL CondInputLoader INFO Initializing CondInputLoader... @@ -281,11 +281,11 @@ TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCond TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OnlEms) for folder: "/TILE/OFL02/CALIB/EMS" TileSampleNoise... INFO Creating TileCondProxyCool(TileSampleNoiseCondAlg.TileCondProxyCool_NoiseSample) for folder: "/TILE/OFL02/NOISE/SAMPLE" TileTimingCondA... INFO Creating TileCondProxyCool(TileTimingCondAlg.TileCondProxyCool_AdcOffset) for folder: "/TILE/OFL02/TIME/CHANNELOFFSET/PHY" -tilecellbuilder... INFO Creating TileCondProxyFile(tilecellbuilder_bct1Cond.tilecellbuilder_bct1_onl) for ASCII file name: "/cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-10-23T2341/Athena/22.0.1/InstallArea/x86_64-slc6-gcc8-opt/share/TileNoBad.oflBch" -tilecellbuilder... INFO Creating TileCondProxyFile(tilecellbuilder_bct1Cond.tilecellbuilder_bct1_ofl) for ASCII file name: "/cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-10-23T2341/Athena/22.0.1/InstallArea/x86_64-slc6-gcc8-opt/share/TileNoBad.oflBch" +tilecellbuilder... INFO Creating TileCondProxyFile(tilecellbuilder_bct1Cond.tilecellbuilder_bct1_onl) for ASCII file name: "/cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/TileNoBad.oflBch" +tilecellbuilder... INFO Creating TileCondProxyFile(tilecellbuilder_bct1Cond.tilecellbuilder_bct1_ofl) for ASCII file name: "/cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/TileNoBad.oflBch" tilecellbuilder... INFO ProxyOnlBch and ProxyOflBch will be used for bad channel status -tilecellbuilder... INFO Creating TileCondProxyFile(tilecellbuilder_bct2Cond.tilecellbuilder_bct2_onl) for ASCII file name: "/cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-10-23T2341/Athena/22.0.1/InstallArea/x86_64-slc6-gcc8-opt/share/TileNoBad.oflBch" -tilecellbuilder... INFO Creating TileCondProxyFile(tilecellbuilder_bct2Cond.tilecellbuilder_bct2_ofl) for ASCII file name: "/afs/cern.ch/work/s/ssnyder/builds/atlas-work3/build-x86_64-slc6-gcc8-opt/TileCalorimeter/TileRecUtils/unitTestRun/tilecellbuilder_bct2.bch" +tilecellbuilder... INFO Creating TileCondProxyFile(tilecellbuilder_bct2Cond.tilecellbuilder_bct2_onl) for ASCII file name: "/cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/TileNoBad.oflBch" +tilecellbuilder... INFO Creating TileCondProxyFile(tilecellbuilder_bct2Cond.tilecellbuilder_bct2_ofl) for ASCII file name: "/afs/cern.ch/work/s/ssnyder/builds/atlas-work3/build-x86_64-slc6-gcc62-dbg/TileCalorimeter/TileRecUtils/unitTestRun/tilecellbuilder_bct2.bch" tilecellbuilder... INFO ProxyOnlBch and ProxyOflBch will be used for bad channel status ClassIDSvc INFO getRegistryEntries: read 504 CLIDRegistry entries for module ALL xAODMaker::Even... INFO Initializing - Package version: xAODEventInfoCnv-00-00-00 @@ -297,7 +297,7 @@ xAODMaker::Even... INFO Will take information from the EventInfo object ClassIDSvc INFO getRegistryEntries: read 319 CLIDRegistry entries for module ALL PyComponentMgr INFO Initializing PyComponentMgr... testalg1 INFO Initializing testalg1... -ClassIDSvc INFO getRegistryEntries: read 4355 CLIDRegistry entries for module ALL +ClassIDSvc INFO getRegistryEntries: read 4940 CLIDRegistry entries for module ALL ToolSvc.tool1 INFO Storing MBTS cells in MBTSContainer ToolSvc.TileBea... INFO in initialize() ToolSvc.tool1 INFO none of thresholds set, all RawChannels will be converted to Cells @@ -386,23 +386,21 @@ EventPersistenc... INFO Added successfully Conversion service:AthenaPoolCnvSvc EventPersistenc... INFO Added successfully Conversion service:TagInfoMgr ClassIDSvc INFO getRegistryEntries: read 109 CLIDRegistry entries for module ALL IOVDbSvc INFO Opening COOL connection for COOLOFL_LAR/OFLP200 -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to LARAlign-IOVDEP-00 for folder /LAR/Align -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to LArCellPositionShift-ideal for folder /LAR/LArCellPositionShift +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to LARAlign-IOVDEP-00 for folder /LAR/Align +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to LArCellPositionShift-ideal for folder /LAR/LArCellPositionShift IOVDbSvc INFO Disconnecting from COOLOFL_LAR/OFLP200 IOVDbSvc INFO Opening COOL connection for COOLOFL_TILE/OFLP200 -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCes-SIM-06 for folder /TILE/OFL02/CALIB/CES -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCisFitLin-COM-00 for folder /TILE/OFL02/CALIB/CIS/FIT/LIN -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCisFitNln-COM-00 for folder /TILE/OFL02/CALIB/CIS/FIT/NLN -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibEms-COM-00 for folder /TILE/OFL02/CALIB/EMS -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasFiber-000-00 for folder /TILE/OFL02/CALIB/LAS/FIBER -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasLin-COM-00 for folder /TILE/OFL02/CALIB/LAS/LIN -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasNln-COM-00 for folder /TILE/OFL02/CALIB/LAS/NLN -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02NoiseSample-TwoGauss-19 for folder /TILE/OFL02/NOISE/SAMPLE -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02StatusAdc-IOVDEP-03 for folder /TILE/OFL02/STATUS/ADC -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02TimeChanneloffsetPhy-000-00 for folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCes-SIM-06 for folder /TILE/OFL02/CALIB/CES +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCisFitLin-COM-00 for folder /TILE/OFL02/CALIB/CIS/FIT/LIN +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCisFitNln-COM-00 for folder /TILE/OFL02/CALIB/CIS/FIT/NLN +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibEms-COM-00 for folder /TILE/OFL02/CALIB/EMS +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasFiber-000-00 for folder /TILE/OFL02/CALIB/LAS/FIBER +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasLin-COM-00 for folder /TILE/OFL02/CALIB/LAS/LIN +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasNln-COM-00 for folder /TILE/OFL02/CALIB/LAS/NLN +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02NoiseSample-TwoGauss-19 for folder /TILE/OFL02/NOISE/SAMPLE +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02StatusAdc-IOVDEP-03 for folder /TILE/OFL02/STATUS/ADC +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02TimeChanneloffsetPhy-000-00 for folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY IOVDbSvc INFO Disconnecting from COOLOFL_TILE/OFLP200 -DbSession INFO Open DbSession -Domain[ROOT_All] INFO > Access DbDomain READ [ROOT_All] Domain[ROOT_All] INFO -> Access DbDatabase READ [ROOT_All] EACFEBD4-9BD2-E211-848A-02163E006B20 Domain[ROOT_All] INFO /cvmfs/atlas-condb.cern.ch/repo/conditions/cond09/cond09_mc.000057.gen.COND/cond09_mc.000057.gen.COND._0001.pool.root RootDatabase.open INFO /cvmfs/atlas-condb.cern.ch/repo/conditions/cond09/cond09_mc.000057.gen.COND/cond09_mc.000057.gen.COND._0001.pool.root File version:52200 @@ -424,12 +422,12 @@ CaloIDHelper_ID... INFO in createObj: creating a LArHEC_SuperCell_ID helper ob AtlasDetectorID INFO initialize_from_dictionary - OK CaloIDHelper_ID... INFO in createObj: creating a LArFCAL_SuperCell_ID helper object in the detector store AtlasDetectorID INFO initialize_from_dictionary - OK -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-10-23T2341/Athena/22.0.1/InstallArea/x86_64-slc6-gcc8-opt/share/FCalSuperCells2DNeighborsNew-April2014.txt -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-10-23T2341/Athena/22.0.1/InstallArea/x86_64-slc6-gcc8-opt/share/FCalSuperCells3DNeighborsNextNew-April2014.txt -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-10-23T2341/Athena/22.0.1/InstallArea/x86_64-slc6-gcc8-opt/share/FCalSuperCells3DNeighborsPrevNew-April2014.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells2DNeighborsNew-April2014.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells3DNeighborsNextNew-April2014.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells3DNeighborsPrevNew-April2014.txt CaloIDHelper_ID... INFO in createObj: creating a Tile_SuperCell_ID helper object in the detector store AtlasDetectorID INFO initialize_from_dictionary - OK -TileNeighbour INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-10-23T2341/Athena/22.0.1/InstallArea/x86_64-slc6-gcc8-opt/share/TileSuperCellNeighbour.txt +TileNeighbour INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/TileSuperCellNeighbour.txt AtlasDetectorID INFO initialize_from_dictionary - OK CaloIdMgrDetDes... INFO Finished CaloIdMgrDetDes... INFO Initializing CaloIdMgr from values in CaloIdMgrDetDescrCnv @@ -457,8 +455,8 @@ TileBadChannels... INFO TileBchStatus::isNoisy() is defined by: Large HF noise TileBadChannels... INFO TileBchStatus::isNoGainL1() is defined by: ADC dead; No PMT connected; No HV; Channel masked for LV1 (unspecified); LV1 channel no gain; LV1 channel noisy; Channel disabled for LV1; TileBadChannels... INFO TileBchStatus::isBadTiming() is defined by: Bad timing; Online bad timing; TileBadChannels... INFO No drawer trips probabilities found in DB -tilecellbuilder... INFO Creating TileCondProxyFile(tilecellbuilder_bct1Cond.tilecellbuilder_bct1_onl) for ASCII file name: "/cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-10-23T2341/Athena/22.0.1/InstallArea/x86_64-slc6-gcc8-opt/share/TileNoBad.oflBch" -tilecellbuilder... INFO Creating TileCondProxyFile(tilecellbuilder_bct1Cond.tilecellbuilder_bct1_ofl) for ASCII file name: "/cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-10-23T2341/Athena/22.0.1/InstallArea/x86_64-slc6-gcc8-opt/share/TileNoBad.oflBch" +tilecellbuilder... INFO Creating TileCondProxyFile(tilecellbuilder_bct1Cond.tilecellbuilder_bct1_onl) for ASCII file name: "/cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/TileNoBad.oflBch" +tilecellbuilder... INFO Creating TileCondProxyFile(tilecellbuilder_bct1Cond.tilecellbuilder_bct1_ofl) for ASCII file name: "/cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/TileNoBad.oflBch" tilecellbuilder... INFO No TileBchStatus::isBad() definition found in DB, using defaults tilecellbuilder... INFO No TileBchStatus::isNoisy() definition found in DB, using defaults tilecellbuilder... INFO No TileBchStatus::isNoGainL1() definition found in DB, using defaults @@ -468,8 +466,8 @@ tilecellbuilder... INFO TileBchStatus::isNoisy() is defined by: Large HF noise tilecellbuilder... INFO TileBchStatus::isNoGainL1() is defined by: ADC dead; No PMT connected; No HV; Channel masked for LV1 (unspecified); LV1 channel no gain; LV1 channel noisy; Channel disabled for LV1; tilecellbuilder... INFO TileBchStatus::isBadTiming() is defined by: Bad timing; Online bad timing; tilecellbuilder... INFO No drawer trips probabilities found in DB -tilecellbuilder... INFO Creating TileCondProxyFile(tilecellbuilder_bct2Cond.tilecellbuilder_bct2_onl) for ASCII file name: "/cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-10-23T2341/Athena/22.0.1/InstallArea/x86_64-slc6-gcc8-opt/share/TileNoBad.oflBch" -tilecellbuilder... INFO Creating TileCondProxyFile(tilecellbuilder_bct2Cond.tilecellbuilder_bct2_ofl) for ASCII file name: "/afs/cern.ch/work/s/ssnyder/builds/atlas-work3/build-x86_64-slc6-gcc8-opt/TileCalorimeter/TileRecUtils/unitTestRun/tilecellbuilder_bct2.bch" +tilecellbuilder... INFO Creating TileCondProxyFile(tilecellbuilder_bct2Cond.tilecellbuilder_bct2_onl) for ASCII file name: "/cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/TileNoBad.oflBch" +tilecellbuilder... INFO Creating TileCondProxyFile(tilecellbuilder_bct2Cond.tilecellbuilder_bct2_ofl) for ASCII file name: "/afs/cern.ch/work/s/ssnyder/builds/atlas-work3/build-x86_64-slc6-gcc62-dbg/TileCalorimeter/TileRecUtils/unitTestRun/tilecellbuilder_bct2.bch" tilecellbuilder... INFO No TileBchStatus::isBad() definition found in DB, using defaults tilecellbuilder... INFO No TileBchStatus::isNoisy() definition found in DB, using defaults tilecellbuilder... INFO No TileBchStatus::isNoGainL1() definition found in DB, using defaults @@ -484,11 +482,6 @@ ClassIDSvc INFO getRegistryEntries: read 67 CLIDRegistry entries for ClassIDSvc INFO getRegistryEntries: read 8 CLIDRegistry entries for module ALL zzz 0xf0f0005L 2 0xf0f0005 AthenaEventLoopMgr INFO ===>>> done processing event #1, run #1 1 events processed so far <<<=== -/cvmfs/atlas-co... INFO Database being retired... -Domain[ROOT_All] INFO -> Deaccess DbDatabase READ [ROOT_All] EACFEBD4-9BD2-E211-848A-02163E006B20 -/cvmfs/atlas-co... INFO Database being retired... -Domain[ROOT_All] INFO -> Deaccess DbDatabase READ [ROOT_All] 8667C6F2-1559-DE11-A611-000423D9A21A -Domain[ROOT_All] INFO > Deaccess DbDomain READ [ROOT_All] AthenaEventLoopMgr INFO ===>>> start processing event #2, run #1 1 events processed so far <<<=== ClassIDSvc INFO getRegistryEntries: read 51 CLIDRegistry entries for module ALL zzz 0xf0f0045L 2 0xf0f0045 @@ -525,6 +518,10 @@ zzz 0xf0f0005L 2 0xf0f0005 AthenaEventLoopMgr INFO ===>>> done processing event #12, run #1 12 events processed so far <<<=== TileInfoLoader INFO Handling EndRun incident TileInfoLoader INFO Removed TileInfo object from detector store. +/cvmfs/atlas-co... INFO Database being retired... +Domain[ROOT_All] INFO -> Deaccess DbDatabase READ [ROOT_All] EACFEBD4-9BD2-E211-848A-02163E006B20 +/cvmfs/atlas-co... INFO Database being retired... +Domain[ROOT_All] INFO -> Deaccess DbDatabase READ [ROOT_All] 8667C6F2-1559-DE11-A611-000423D9A21A Domain[ROOT_All] INFO > Deaccess DbDomain READ [ROOT_All] ApplicationMgr INFO Application Manager Stopped successfully IncidentProcAlg1 INFO Finalize @@ -533,23 +530,23 @@ testalg1 INFO Finalizing testalg1... IncidentProcAlg2 INFO Finalize PyComponentMgr INFO Finalizing PyComponentMgr... IdDictDetDescrCnv INFO in finalize -IOVDbSvc INFO Folder /LAR/Align (PoolRef) db-read 1/1 objs/chan/bytes 1/1/170 (( 1.00 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/CES (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/103344 (( 2.60 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/CIS/FIT/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/80 (( 1.91 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/CIS/FIT/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/80 (( 1.02 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/EMS (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/92 (( 0.59 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/LAS/FIBER (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/940 (( 0.69 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/LAS/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/72 (( 0.61 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/LAS/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/76 (( 4.11 ))s -IOVDbSvc INFO Folder /TILE/OFL02/NOISE/SAMPLE (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/641476 (( 1.84 ))s -IOVDbSvc INFO Folder /TILE/OFL02/STATUS/ADC (AttrListColl) db-read 1/2 objs/chan/bytes 277/277/97884 (( 0.08 ))s -IOVDbSvc INFO Folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/96 (( 0.06 ))s -IOVDbSvc INFO Folder /TILE/ONL01/STATUS/ADC (AttrListColl) db-read 1/2 objs/chan/bytes 277/277/76 (( 0.01 ))s -IOVDbSvc INFO Folder /LAR/LArCellPositionShift (PoolRef) db-read 1/1 objs/chan/bytes 1/1/195 (( 7.62 ))s -IOVDbSvc INFO Total payload read from COOL: 844581 bytes in (( 22.14 ))s +IOVDbFolder INFO Folder /LAR/Align (PoolRef) db-read 1/1 objs/chan/bytes 1/1/170 (( 2.26 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CES (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/103344 (( 0.91 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/80 (( 1.25 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/80 (( 0.93 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/EMS (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/92 (( 0.72 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/FIBER (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/940 (( 1.35 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/72 (( 1.57 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/76 (( 1.80 ))s +IOVDbFolder INFO Folder /TILE/OFL02/NOISE/SAMPLE (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/641476 (( 1.56 ))s +IOVDbFolder INFO Folder /TILE/OFL02/STATUS/ADC (AttrListColl) db-read 1/2 objs/chan/bytes 277/277/97884 (( 0.05 ))s +IOVDbFolder INFO Folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/96 (( 0.06 ))s +IOVDbFolder INFO Folder /TILE/ONL01/STATUS/ADC (AttrListColl) db-read 1/2 objs/chan/bytes 277/277/76 (( 0.03 ))s +IOVDbFolder INFO Folder /LAR/LArCellPositionShift (PoolRef) db-read 1/1 objs/chan/bytes 1/1/195 (( 0.78 ))s +IOVDbSvc INFO bytes in (( 13.27 ))s IOVDbSvc INFO Connection sqlite://;schema=mycool.db;dbname=OFLP200 : nConnect: 0 nFolders: 0 ReadTime: (( 0.00 ))s -IOVDbSvc INFO Connection COOLOFL_LAR/OFLP200 : nConnect: 2 nFolders: 2 ReadTime: (( 8.62 ))s -IOVDbSvc INFO Connection COOLOFL_TILE/OFLP200 : nConnect: 2 nFolders: 11 ReadTime: (( 13.52 ))s +IOVDbSvc INFO Connection COOLOFL_LAR/OFLP200 : nConnect: 2 nFolders: 2 ReadTime: (( 3.04 ))s +IOVDbSvc INFO Connection COOLOFL_TILE/OFLP200 : nConnect: 2 nFolders: 11 ReadTime: (( 10.23 ))s TileInfoLoader INFO TileInfoLoader::finalize() AthDictLoaderSvc INFO in finalize... ToolSvc INFO Removing all tools created by ToolSvc @@ -568,9 +565,9 @@ ToolSvc.TileBea... INFO Finalizing *****Chrono***** INFO **************************************************************************************************** *****Chrono***** INFO The Final CPU consumption ( Chrono ) Table (ordered) *****Chrono***** INFO **************************************************************************************************** -cObjR_ALL INFO Time User : Tot= 450 [ms] Ave/Min/Max= 225(+- 225)/ 0/ 450 [ms] #= 2 -cObj_ALL INFO Time User : Tot= 0.56 [s] Ave/Min/Max=0.0373(+-0.122)/ 0/ 0.49 [s] #= 15 -ChronoStatSvc INFO Time User : Tot= 38 [s] #= 1 +cObjR_ALL INFO Time User : Tot= 0.72 [s] Ave/Min/Max= 0.36(+- 0.35)/ 0.01/ 0.71 [s] #= 2 +cObj_ALL INFO Time User : Tot= 0.98 [s] Ave/Min/Max=0.0653(+-0.203)/ 0/ 0.81 [s] #= 15 +ChronoStatSvc INFO Time User : Tot= 68.5 [s] #= 1 *****Chrono***** INFO **************************************************************************************************** ChronoStatSvc.f... INFO Service finalized successfully ApplicationMgr INFO Application Manager Finalized successfully diff --git a/TileCalorimeter/TileRecUtils/share/TileDQstatusAlg_test.ref b/TileCalorimeter/TileRecUtils/share/TileDQstatusAlg_test.ref index 091dcc7ab31c66cad655feb2b8150be9fba0603e..8eeeb78be61d5ef7695f69413936ee77edf5a8e1 100644 --- a/TileCalorimeter/TileRecUtils/share/TileDQstatusAlg_test.ref +++ b/TileCalorimeter/TileRecUtils/share/TileDQstatusAlg_test.ref @@ -1,14 +1,14 @@ -Mon Nov 19 18:16:20 CET 2018 +Thu Dec 6 05:50:45 CET 2018 Preloading tcmalloc_minimal.so Py:Athena INFO including file "AthenaCommon/Preparation.py" -Py:Athena INFO using release [WorkDir-22.0.1] [x86_64-slc6-gcc62-opt] [atlas-work3h/b5d888be63e] -- built on [2018-11-19T1802] +Py:Athena INFO using release [AthenaWorkDir-22.0.1] [x86_64-slc6-gcc62-dbg] [atlas-work3/fa0fd6d0989] -- built on [2018-12-06T0537] Py:Athena INFO including file "AthenaCommon/Atlas.UnixStandardJob.py" Py:Athena INFO executing ROOT6Setup Py:Athena INFO including file "AthenaCommon/Execution.py" Py:Athena INFO including file "TileRecUtils/TileDQstatusAlg_test.py" [?1034hSetGeometryVersion.py obtained major release version 22 Py:Athena INFO including file "IdDictDetDescrCnv/IdDictDetDescrCnv_joboptions.py" -Py:ConfigurableDb INFO Read module info for 5415 configurables from 8 genConfDb files +Py:ConfigurableDb INFO Read module info for 5473 configurables from 61 genConfDb files Py:ConfigurableDb INFO No duplicates have been found: that's good ! EventInfoMgtInit: Got release version Athena-22.0.1 Py:IOVDbSvc.CondDB INFO Setting up conditions DB access to instance OFLP200 @@ -28,8 +28,8 @@ ApplicationMgr INFO Updating Gaudi::PluginService::SetDebug(level) to leve ApplicationMgr INFO Updating Gaudi::PluginService::SetDebug(level) to level= 'PluginDebugLevel':0 ApplicationMgr SUCCESS ==================================================================================================================================== - Welcome to ApplicationMgr (GaudiCoreSvc v30r4) - running on lxplus056.cern.ch on Mon Nov 19 18:17:38 2018 + Welcome to ApplicationMgr (GaudiCoreSvc v30r5) + running on lxplus071.cern.ch on Thu Dec 6 05:51:06 2018 ==================================================================================================================================== ApplicationMgr INFO Successfully loaded modules : AthenaServices ApplicationMgr INFO Application Manager Configured successfully @@ -46,8 +46,8 @@ PoolSvc INFO io_register[PoolSvc](xmlcatalog_file:PoolFileCatalog.x PoolSvc INFO Set connectionsvc retry/timeout/IDLE timeout to 'ConnectionRetrialPeriod':300/ 'ConnectionRetrialTimeOut':3600/ 'ConnectionTimeOut':5 seconds with connection cleanup disabled PoolSvc INFO Frontier compression level set to 5 DBReplicaSvc INFO Frontier server at (serverurl=http://atlasfrontier-local.cern.ch:8000/atlr)(serverurl=http://atlasfrontier-ai.cern.ch:8000/atlr)(serverurl=http://lcgft-atlas.gridpp.rl.ac.uk:3128/frontierATLAS)(serverurl=http://ccfrontier.in2p3.fr:23128/ccin2p3-AtlasFrontier)(proxyurl=http://ca-proxy.cern.ch:3128)(proxyurl=http://ca-proxy-meyrin.cern.ch:3128)(proxyurl=http://ca-proxy-wigner.cern.ch:3128)(proxyurl=http://atlasbpfrontier.cern.ch:3127)(proxyurl=http://atlasbpfrontier.fnal.gov:3127) will be considered for COOL data -DBReplicaSvc INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-15T2257/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config -DBReplicaSvc INFO Total of 10 servers found for host lxplus056.cern.ch [ATLF ATLAS_COOLPROD atlas_dd ATLAS_CONFIG INT8R INTR ATONR_COOL ATONR_CONF DEVDB11 ATLF ] +DBReplicaSvc INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/dbreplica.config +DBReplicaSvc INFO Total of 10 servers found for host lxplus071.cern.ch [ATLF ATLAS_COOLPROD atlas_dd ATLAS_CONFIG INT8R INTR ATONR_COOL ATONR_CONF DEVDB11 ATLF ] PoolSvc INFO Successfully setup replica sorting algorithm PoolSvc INFO Setting up APR FileCatalog and Streams PoolSvc WARNING Unable to locate catalog for prfile:poolcond/PoolCat_oflcond.xml check your ATLAS_POOLCOND_PATH and DATAPATH variables @@ -60,7 +60,7 @@ IOVDbSvc INFO Opened read transaction for POOL PersistencySvc IOVDbSvc INFO Only 5 POOL conditions files will be open at once IOVDbSvc INFO Cache alignment will be done in 3 slices IOVDbSvc INFO Global tag: OFLCOND-RUN12-SDR-35 set from joboptions -IOVDbSvc INFO Read from meta data only for folder /TagInfo +IOVDbFolder INFO Read from meta data only for folder /TagInfo IOVDbSvc INFO Initialised with 3 connections and 14 folders IOVDbSvc INFO Service IOVDbSvc initialised successfully IOVDbSvc INFO preLoadAddresses: Removing folder /TagInfo. It should only be in the file meta data and was not found. @@ -83,7 +83,7 @@ IOVDbSvc INFO Added taginfo remove for /TILE/OFL02/STATUS/ADC IOVDbSvc INFO Added taginfo remove for /TILE/OFL02/TIME/CHANNELOFFSET/PHY IOVDbSvc INFO Added taginfo remove for /TILE/ONL01/STATUS/ADC IOVDbSvc INFO Added taginfo remove for /LAR/LArCellPositionShift -ClassIDSvc INFO getRegistryEntries: read 1917 CLIDRegistry entries for module ALL +ClassIDSvc INFO getRegistryEntries: read 1919 CLIDRegistry entries for module ALL ClassIDSvc INFO getRegistryEntries: read 17 CLIDRegistry entries for module ALL DetDescrCnvSvc INFO initializing DetDescrCnvSvc INFO Found DetectorStore service @@ -172,7 +172,7 @@ EndcapDMConstru... INFO Start building EC electronics geometry multi-layered version of absorbers activated, mlabs == 1 ================================================ EndcapDMConstru... INFO Start building EC electronics geometry -GeoModelSvc INFO GeoModelSvc.LArDetectorToolNV SZ= 22956Kb Time = 0.73S +GeoModelSvc INFO GeoModelSvc.LArDetectorToolNV SZ= 27520Kb Time = 1.61S GeoModelSvc.Til... INFO Entering TileDetectorTool::create() TileDddbManager INFO m_tag = ATLAS-R2-2016-01-00-01 TileDddbManager INFO n_tiglob = 5 @@ -184,7 +184,7 @@ TileDddbManager INFO n_tileSwitches = 1 ClassIDSvc INFO getRegistryEntries: read 213 CLIDRegistry entries for module ALL CaloIDHelper_ID... INFO in createObj: creating a TileID helper object in the detector store AtlasDetectorID INFO initialize_from_dictionary - OK -TileNeighbour INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-15T2257/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/TileNeighbour_reduced.txt +TileNeighbour INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/TileNeighbour_reduced.txt TileHWIDDetDesc... INFO in createObj: creating a TileHWID helper object in the detector store TileHWID INFO initialize_from_dictionary AtlasDetectorID INFO initialize_from_dictionary - OK @@ -196,9 +196,9 @@ CaloIDHelper_ID... INFO in createObj: creating a LArHEC_ID helper object in th AtlasDetectorID INFO initialize_from_dictionary - OK CaloIDHelper_ID... INFO in createObj: creating a LArFCAL_ID helper object in the detector store AtlasDetectorID INFO initialize_from_dictionary - OK -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-15T2257/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/FCal2DNeighbors-April2011.txt -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-15T2257/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/FCal3DNeighborsNext-April2011.txt -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-15T2257/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/FCal3DNeighborsPrev-April2011.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCal2DNeighbors-April2011.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCal3DNeighborsNext-April2011.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCal3DNeighborsPrev-April2011.txt CaloIDHelper_ID... INFO in createObj: creating a LArMiniFCAL_ID helper object in the detector store AtlasDetectorID INFO initialize_from_dictionary - OK LArMiniFCAL_ID INFO initialize_from_dict - LArCalorimeter dictionary does NOT contain miniFCAL description. Unable to initialize LArMiniFCAL_ID. @@ -233,7 +233,7 @@ GeoModelSvc.Til... INFO Global positioning of barrel with rotation (0,0,0)) a GeoModelSvc.Til... INFO Global positioning of positive ext.barrel with rotation (0,0,0)) and translation (0,0,0) CLHEP::cm GeoModelSvc.Til... INFO Global positioning of negative ext.barrel with rotation (0,0,0)) and translation (0,0,1) CLHEP::cm TileDetDescrMan... INFO Entering create_elements() -GeoModelSvc INFO GeoModelSvc.TileDetectorTool SZ= 4596Kb Time = 0.24S +GeoModelSvc INFO GeoModelSvc.TileDetectorTool SZ= 5196Kb Time = 1.62S ClassIDSvc INFO getRegistryEntries: read 65 CLIDRegistry entries for module ALL TileInfoLoader INFO Initializing....TileInfoLoader TileInfoLoader INFO New ATLAS geometry detected: ATLAS-R2-2016-01-00-01 (010001) version 10001 @@ -255,11 +255,11 @@ TileInfoLoader INFO Sampling fraction for E2 cells 1/107 TileInfoLoader INFO Sampling fraction for E3 cells 1/97 TileInfoLoader INFO Sampling fraction for E4 cells 1/75 TileInfoLoader INFO Sampling fraction for E4' cells 1/75 -TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-15T2257/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/pulsehi_physics.dat -TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-15T2257/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/pulselo_physics.dat -TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-15T2257/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/pulse_adder_tower_physics.dat -TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-15T2257/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/pulse_adder_muonRcv_physics.dat -TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-15T2257/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/pulse_adder_muon_physics.dat +TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulsehi_physics.dat +TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulselo_physics.dat +TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulse_adder_tower_physics.dat +TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulse_adder_muonRcv_physics.dat +TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulse_adder_muon_physics.dat CaloIDHelper_ID... INFO in createObj: creating a CaloLVL1_ID helper object in the detector store CaloLVL1_ID INFO initialize_from_dictionary AtlasDetectorID INFO initialize_from_dictionary - OK @@ -268,12 +268,12 @@ TileCablingSvc INFO Cabling for RUN2 (2014-2017) ATLAS geometry is set via TileCablingSvc INFO Setting Cabling type to 4 TileInfoLoader INFO Placed TileInfo object in the detector store. ToolSvc.TileBad... INFO Creating TileCondProxyCool(ToolSvc.TileBadChanLegacyTool.TileCondProxyCool_OnlBch) for folder: "/TILE/ONL01/STATUS/ADC" -IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileCondProxyCool<TileCalibDrawerBch>[0x19267700]+7fae0477c710 bound to CondAttrListCollection[/TILE/ONL01/STATUS/ADC] +IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileCondProxyCool<TileCalibDrawerBch>[0x1c713600]+7f279d2e4a54 bound to CondAttrListCollection[/TILE/ONL01/STATUS/ADC] ToolSvc.TileBad... INFO Creating TileCondProxyCool(ToolSvc.TileBadChanLegacyTool.TileCondProxyCool_OflBch) for folder: "/TILE/OFL02/STATUS/ADC" -IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileCondProxyCool<TileCalibDrawerBch>[0x19266100]+7fae0477c710 bound to CondAttrListCollection[/TILE/OFL02/STATUS/ADC] +IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileCondProxyCool<TileCalibDrawerBch>[0x1c714c00]+7f279d2e4a54 bound to CondAttrListCollection[/TILE/OFL02/STATUS/ADC] ToolSvc.TileBad... INFO ProxyOnlBch and ProxyOflBch will be used for bad channel status -IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileBadChanLegacyTool[0x190d9000]+7fae04709150 bound to /TILE/ONL01/STATUS/ADC -IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileBadChanLegacyTool[0x190d9000]+7fae04709150 bound to /TILE/OFL02/STATUS/ADC +IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileBadChanLegacyTool[0x18bae000]+7f279d0fec6e bound to /TILE/ONL01/STATUS/ADC +IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileBadChanLegacyTool[0x18bae000]+7f279d0fec6e bound to /TILE/OFL02/STATUS/ADC AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00 ClassIDSvc INFO getRegistryEntries: read 265 CLIDRegistry entries for module ALL CondInputLoader INFO Initializing CondInputLoader... @@ -319,7 +319,7 @@ TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCond TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OnlEms) for folder: "/TILE/OFL02/CALIB/EMS" TileSampleNoise... INFO Creating TileCondProxyCool(TileSampleNoiseCondAlg.TileCondProxyCool_NoiseSample) for folder: "/TILE/OFL02/NOISE/SAMPLE" TileTimingCondA... INFO Creating TileCondProxyCool(TileTimingCondAlg.TileCondProxyCool_AdcOffset) for folder: "/TILE/OFL02/TIME/CHANNELOFFSET/PHY" -ClassIDSvc INFO getRegistryEntries: read 4762 CLIDRegistry entries for module ALL +ClassIDSvc INFO getRegistryEntries: read 4874 CLIDRegistry entries for module ALL PyComponentMgr INFO Initializing PyComponentMgr... record1 INFO Initializing record1... check1 INFO Initializing check1... @@ -343,23 +343,21 @@ EventPersistenc... INFO Added successfully Conversion service:AthenaPoolCnvSvc EventPersistenc... INFO Added successfully Conversion service:TagInfoMgr ClassIDSvc INFO getRegistryEntries: read 109 CLIDRegistry entries for module ALL IOVDbSvc INFO Opening COOL connection for COOLOFL_LAR/OFLP200 -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to LARAlign-IOVDEP-00 for folder /LAR/Align -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to LArCellPositionShift-ideal for folder /LAR/LArCellPositionShift +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to LARAlign-IOVDEP-00 for folder /LAR/Align +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to LArCellPositionShift-ideal for folder /LAR/LArCellPositionShift IOVDbSvc INFO Disconnecting from COOLOFL_LAR/OFLP200 IOVDbSvc INFO Opening COOL connection for COOLOFL_TILE/OFLP200 -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCes-SIM-06 for folder /TILE/OFL02/CALIB/CES -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCisFitLin-COM-00 for folder /TILE/OFL02/CALIB/CIS/FIT/LIN -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCisFitNln-COM-00 for folder /TILE/OFL02/CALIB/CIS/FIT/NLN -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibEms-COM-00 for folder /TILE/OFL02/CALIB/EMS -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasFiber-000-00 for folder /TILE/OFL02/CALIB/LAS/FIBER -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasLin-COM-00 for folder /TILE/OFL02/CALIB/LAS/LIN -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasNln-COM-00 for folder /TILE/OFL02/CALIB/LAS/NLN -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02NoiseSample-TwoGauss-19 for folder /TILE/OFL02/NOISE/SAMPLE -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02StatusAdc-IOVDEP-03 for folder /TILE/OFL02/STATUS/ADC -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02TimeChanneloffsetPhy-000-00 for folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCes-SIM-06 for folder /TILE/OFL02/CALIB/CES +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCisFitLin-COM-00 for folder /TILE/OFL02/CALIB/CIS/FIT/LIN +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCisFitNln-COM-00 for folder /TILE/OFL02/CALIB/CIS/FIT/NLN +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibEms-COM-00 for folder /TILE/OFL02/CALIB/EMS +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasFiber-000-00 for folder /TILE/OFL02/CALIB/LAS/FIBER +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasLin-COM-00 for folder /TILE/OFL02/CALIB/LAS/LIN +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasNln-COM-00 for folder /TILE/OFL02/CALIB/LAS/NLN +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02NoiseSample-TwoGauss-19 for folder /TILE/OFL02/NOISE/SAMPLE +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02StatusAdc-IOVDEP-03 for folder /TILE/OFL02/STATUS/ADC +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02TimeChanneloffsetPhy-000-00 for folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY IOVDbSvc INFO Disconnecting from COOLOFL_TILE/OFLP200 -DbSession INFO Open DbSession -Domain[ROOT_All] INFO > Access DbDomain READ [ROOT_All] Domain[ROOT_All] INFO -> Access DbDatabase READ [ROOT_All] EACFEBD4-9BD2-E211-848A-02163E006B20 Domain[ROOT_All] INFO /cvmfs/atlas-condb.cern.ch/repo/conditions/cond09/cond09_mc.000057.gen.COND/cond09_mc.000057.gen.COND._0001.pool.root RootDatabase.open INFO /cvmfs/atlas-condb.cern.ch/repo/conditions/cond09/cond09_mc.000057.gen.COND/cond09_mc.000057.gen.COND._0001.pool.root File version:52200 @@ -381,12 +379,12 @@ CaloIDHelper_ID... INFO in createObj: creating a LArHEC_SuperCell_ID helper ob AtlasDetectorID INFO initialize_from_dictionary - OK CaloIDHelper_ID... INFO in createObj: creating a LArFCAL_SuperCell_ID helper object in the detector store AtlasDetectorID INFO initialize_from_dictionary - OK -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-15T2257/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/FCalSuperCells2DNeighborsNew-April2014.txt -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-15T2257/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/FCalSuperCells3DNeighborsNextNew-April2014.txt -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-15T2257/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/FCalSuperCells3DNeighborsPrevNew-April2014.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells2DNeighborsNew-April2014.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells3DNeighborsNextNew-April2014.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells3DNeighborsPrevNew-April2014.txt CaloIDHelper_ID... INFO in createObj: creating a Tile_SuperCell_ID helper object in the detector store AtlasDetectorID INFO initialize_from_dictionary - OK -TileNeighbour INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-15T2257/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/TileSuperCellNeighbour.txt +TileNeighbour INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/TileSuperCellNeighbour.txt AtlasDetectorID INFO initialize_from_dictionary - OK CaloIdMgrDetDes... INFO Finished CaloIdMgrDetDes... INFO Initializing CaloIdMgr from values in CaloIdMgrDetDescrCnv @@ -417,15 +415,14 @@ ClassIDSvc INFO getRegistryEntries: read 650 CLIDRegistry entries for ClassIDSvc INFO getRegistryEntries: read 196 CLIDRegistry entries for module ALL ClassIDSvc INFO getRegistryEntries: read 3 CLIDRegistry entries for module ALL AthenaEventLoopMgr INFO ===>>> done processing event #1, run #1 1 events processed so far <<<=== -/cvmfs/atlas-co... INFO Database being retired... -Domain[ROOT_All] INFO -> Deaccess DbDatabase READ [ROOT_All] EACFEBD4-9BD2-E211-848A-02163E006B20 -/cvmfs/atlas-co... INFO Database being retired... -Domain[ROOT_All] INFO -> Deaccess DbDatabase READ [ROOT_All] 8667C6F2-1559-DE11-A611-000423D9A21A -Domain[ROOT_All] INFO > Deaccess DbDomain READ [ROOT_All] AthenaEventLoopMgr INFO ===>>> start processing event #2, run #1 1 events processed so far <<<=== AthenaEventLoopMgr INFO ===>>> done processing event #2, run #1 2 events processed so far <<<=== TileInfoLoader INFO Handling EndRun incident TileInfoLoader INFO Removed TileInfo object from detector store. +/cvmfs/atlas-co... INFO Database being retired... +Domain[ROOT_All] INFO -> Deaccess DbDatabase READ [ROOT_All] EACFEBD4-9BD2-E211-848A-02163E006B20 +/cvmfs/atlas-co... INFO Database being retired... +Domain[ROOT_All] INFO -> Deaccess DbDatabase READ [ROOT_All] 8667C6F2-1559-DE11-A611-000423D9A21A Domain[ROOT_All] INFO > Deaccess DbDomain READ [ROOT_All] ApplicationMgr INFO Application Manager Stopped successfully IncidentProcAlg1 INFO Finalize @@ -435,32 +432,32 @@ check1 INFO Finalizing check1... IncidentProcAlg2 INFO Finalize PyComponentMgr INFO Finalizing PyComponentMgr... IdDictDetDescrCnv INFO in finalize -IOVDbSvc INFO Folder /LAR/Align (PoolRef) db-read 1/1 objs/chan/bytes 1/1/170 (( 0.12 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/CES (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/103344 (( 0.06 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/CIS/FIT/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/80 (( 0.04 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/CIS/FIT/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/80 (( 0.04 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/EMS (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/92 (( 0.03 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/LAS/FIBER (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/940 (( 0.04 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/LAS/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/72 (( 0.03 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/LAS/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/76 (( 0.04 ))s -IOVDbSvc INFO Folder /TILE/OFL02/NOISE/SAMPLE (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/641476 (( 0.05 ))s -IOVDbSvc INFO Folder /TILE/OFL02/STATUS/ADC (AttrListColl) db-read 1/2 objs/chan/bytes 277/277/97884 (( 0.04 ))s -IOVDbSvc INFO Folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/96 (( 0.04 ))s -IOVDbSvc INFO Folder /TILE/ONL01/STATUS/ADC (AttrListColl) db-read 1/2 objs/chan/bytes 277/277/76 (( 0.00 ))s -IOVDbSvc INFO Folder /LAR/LArCellPositionShift (PoolRef) db-read 1/1 objs/chan/bytes 1/1/195 (( 0.04 ))s -IOVDbSvc INFO Total payload read from COOL: 844581 bytes in (( 0.56 ))s +IOVDbFolder INFO Folder /LAR/Align (PoolRef) db-read 1/1 objs/chan/bytes 1/1/170 (( 0.10 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CES (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/103344 (( 0.10 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/80 (( 0.05 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/80 (( 0.05 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/EMS (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/92 (( 0.04 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/FIBER (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/940 (( 0.04 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/72 (( 0.05 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/76 (( 0.05 ))s +IOVDbFolder INFO Folder /TILE/OFL02/NOISE/SAMPLE (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/641476 (( 0.10 ))s +IOVDbFolder INFO Folder /TILE/OFL02/STATUS/ADC (AttrListColl) db-read 1/2 objs/chan/bytes 277/277/97884 (( 0.10 ))s +IOVDbFolder INFO Folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/96 (( 0.05 ))s +IOVDbFolder INFO Folder /TILE/ONL01/STATUS/ADC (AttrListColl) db-read 1/2 objs/chan/bytes 277/277/76 (( 0.02 ))s +IOVDbFolder INFO Folder /LAR/LArCellPositionShift (PoolRef) db-read 1/1 objs/chan/bytes 1/1/195 (( 0.04 ))s +IOVDbSvc INFO bytes in (( 0.79 ))s IOVDbSvc INFO Connection sqlite://;schema=mycool.db;dbname=OFLP200 : nConnect: 0 nFolders: 0 ReadTime: (( 0.00 ))s -IOVDbSvc INFO Connection COOLOFL_LAR/OFLP200 : nConnect: 2 nFolders: 2 ReadTime: (( 0.16 ))s -IOVDbSvc INFO Connection COOLOFL_TILE/OFLP200 : nConnect: 2 nFolders: 11 ReadTime: (( 0.40 ))s +IOVDbSvc INFO Connection COOLOFL_LAR/OFLP200 : nConnect: 2 nFolders: 2 ReadTime: (( 0.15 ))s +IOVDbSvc INFO Connection COOLOFL_TILE/OFLP200 : nConnect: 2 nFolders: 11 ReadTime: (( 0.64 ))s TileInfoLoader INFO TileInfoLoader::finalize() AthDictLoaderSvc INFO in finalize... ToolSvc INFO Removing all tools created by ToolSvc *****Chrono***** INFO **************************************************************************************************** *****Chrono***** INFO The Final CPU consumption ( Chrono ) Table (ordered) *****Chrono***** INFO **************************************************************************************************** -cObjR_ALL INFO Time User : Tot= 0.62 [s] Ave/Min/Max= 0.31(+- 0.3)/ 0.01/ 0.61 [s] #= 2 -cObj_ALL INFO Time User : Tot= 0.73 [s] Ave/Min/Max=0.0487(+-0.162)/ 0/ 0.65 [s] #= 15 -ChronoStatSvc INFO Time User : Tot= 49.6 [s] #= 1 +cObjR_ALL INFO Time User : Tot= 0.8 [s] Ave/Min/Max= 0.4(+- 0.39)/ 0.01/ 0.79 [s] #= 2 +cObj_ALL INFO Time User : Tot= 1.02 [s] Ave/Min/Max=0.068(+-0.218)/ 0/ 0.87 [s] #= 15 +ChronoStatSvc INFO Time User : Tot= 66 [s] #= 1 *****Chrono***** INFO **************************************************************************************************** ChronoStatSvc.f... INFO Service finalized successfully ApplicationMgr INFO Application Manager Finalized successfully diff --git a/TileCalorimeter/TileRecUtils/share/TileDQstatusTool_test.ref b/TileCalorimeter/TileRecUtils/share/TileDQstatusTool_test.ref index ca6c137381446060a1fafa00eefe99146b8ef9c8..71a3624653c759e874677d5555de307d01fbb9bc 100644 --- a/TileCalorimeter/TileRecUtils/share/TileDQstatusTool_test.ref +++ b/TileCalorimeter/TileRecUtils/share/TileDQstatusTool_test.ref @@ -1,14 +1,14 @@ -Thu Nov 22 06:52:15 CET 2018 +Thu Dec 6 05:44:59 CET 2018 Preloading tcmalloc_minimal.so Py:Athena INFO including file "AthenaCommon/Preparation.py" -Py:Athena INFO using release [WorkDir-22.0.1] [x86_64-slc6-gcc62-dbg] [atlas-work3j/e5920231315] -- built on [2018-11-22T0640] +Py:Athena INFO using release [AthenaWorkDir-22.0.1] [x86_64-slc6-gcc62-dbg] [atlas-work3/fa0fd6d0989] -- built on [2018-12-06T0537] Py:Athena INFO including file "AthenaCommon/Atlas.UnixStandardJob.py" Py:Athena INFO executing ROOT6Setup Py:Athena INFO including file "AthenaCommon/Execution.py" Py:Athena INFO including file "TileRecUtils/TileDQstatusTool_test.py" [?1034hSetGeometryVersion.py obtained major release version 22 Py:Athena INFO including file "IdDictDetDescrCnv/IdDictDetDescrCnv_joboptions.py" -Py:ConfigurableDb INFO Read module info for 5411 configurables from 4 genConfDb files +Py:ConfigurableDb INFO Read module info for 5473 configurables from 61 genConfDb files Py:ConfigurableDb INFO No duplicates have been found: that's good ! EventInfoMgtInit: Got release version Athena-22.0.1 Py:IOVDbSvc.CondDB INFO Setting up conditions DB access to instance OFLP200 @@ -28,8 +28,8 @@ ApplicationMgr INFO Updating Gaudi::PluginService::SetDebug(level) to leve ApplicationMgr INFO Updating Gaudi::PluginService::SetDebug(level) to level= 'PluginDebugLevel':0 ApplicationMgr SUCCESS ==================================================================================================================================== - Welcome to ApplicationMgr (GaudiCoreSvc v30r4) - running on lxplus055.cern.ch on Thu Nov 22 06:52:56 2018 + Welcome to ApplicationMgr (GaudiCoreSvc v30r5) + running on lxplus071.cern.ch on Thu Dec 6 05:45:24 2018 ==================================================================================================================================== ApplicationMgr INFO Successfully loaded modules : AthenaServices ApplicationMgr INFO Application Manager Configured successfully @@ -46,8 +46,8 @@ PoolSvc INFO io_register[PoolSvc](xmlcatalog_file:PoolFileCatalog.x PoolSvc INFO Set connectionsvc retry/timeout/IDLE timeout to 'ConnectionRetrialPeriod':300/ 'ConnectionRetrialTimeOut':3600/ 'ConnectionTimeOut':5 seconds with connection cleanup disabled PoolSvc INFO Frontier compression level set to 5 DBReplicaSvc INFO Frontier server at (serverurl=http://atlasfrontier-local.cern.ch:8000/atlr)(serverurl=http://atlasfrontier-ai.cern.ch:8000/atlr)(serverurl=http://lcgft-atlas.gridpp.rl.ac.uk:3128/frontierATLAS)(serverurl=http://ccfrontier.in2p3.fr:23128/ccin2p3-AtlasFrontier)(proxyurl=http://ca-proxy.cern.ch:3128)(proxyurl=http://ca-proxy-meyrin.cern.ch:3128)(proxyurl=http://ca-proxy-wigner.cern.ch:3128)(proxyurl=http://atlasbpfrontier.cern.ch:3127)(proxyurl=http://atlasbpfrontier.fnal.gov:3127) will be considered for COOL data -DBReplicaSvc INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-19T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/dbreplica.config -DBReplicaSvc INFO Total of 10 servers found for host lxplus055.cern.ch [ATLF ATLAS_COOLPROD atlas_dd ATLAS_CONFIG INT8R INTR ATONR_COOL ATONR_CONF DEVDB11 ATLF ] +DBReplicaSvc INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/dbreplica.config +DBReplicaSvc INFO Total of 10 servers found for host lxplus071.cern.ch [ATLF ATLAS_COOLPROD atlas_dd ATLAS_CONFIG INT8R INTR ATONR_COOL ATONR_CONF DEVDB11 ATLF ] PoolSvc INFO Successfully setup replica sorting algorithm PoolSvc INFO Setting up APR FileCatalog and Streams PoolSvc WARNING Unable to locate catalog for prfile:poolcond/PoolCat_oflcond.xml check your ATLAS_POOLCOND_PATH and DATAPATH variables @@ -60,7 +60,7 @@ IOVDbSvc INFO Opened read transaction for POOL PersistencySvc IOVDbSvc INFO Only 5 POOL conditions files will be open at once IOVDbSvc INFO Cache alignment will be done in 3 slices IOVDbSvc INFO Global tag: OFLCOND-RUN12-SDR-35 set from joboptions -IOVDbSvc INFO Read from meta data only for folder /TagInfo +IOVDbFolder INFO Read from meta data only for folder /TagInfo IOVDbSvc INFO Initialised with 3 connections and 14 folders IOVDbSvc INFO Service IOVDbSvc initialised successfully IOVDbSvc INFO preLoadAddresses: Removing folder /TagInfo. It should only be in the file meta data and was not found. @@ -83,7 +83,7 @@ IOVDbSvc INFO Added taginfo remove for /TILE/OFL02/STATUS/ADC IOVDbSvc INFO Added taginfo remove for /TILE/OFL02/TIME/CHANNELOFFSET/PHY IOVDbSvc INFO Added taginfo remove for /TILE/ONL01/STATUS/ADC IOVDbSvc INFO Added taginfo remove for /LAR/LArCellPositionShift -ClassIDSvc INFO getRegistryEntries: read 1917 CLIDRegistry entries for module ALL +ClassIDSvc INFO getRegistryEntries: read 1919 CLIDRegistry entries for module ALL ClassIDSvc INFO getRegistryEntries: read 17 CLIDRegistry entries for module ALL DetDescrCnvSvc INFO initializing DetDescrCnvSvc INFO Found DetectorStore service @@ -172,7 +172,7 @@ EndcapDMConstru... INFO Start building EC electronics geometry multi-layered version of absorbers activated, mlabs == 1 ================================================ EndcapDMConstru... INFO Start building EC electronics geometry -GeoModelSvc INFO GeoModelSvc.LArDetectorToolNV SZ= 29060Kb Time = 1.36S +GeoModelSvc INFO GeoModelSvc.LArDetectorToolNV SZ= 27520Kb Time = 1.54S GeoModelSvc.Til... INFO Entering TileDetectorTool::create() TileDddbManager INFO m_tag = ATLAS-R2-2016-01-00-01 TileDddbManager INFO n_tiglob = 5 @@ -184,7 +184,7 @@ TileDddbManager INFO n_tileSwitches = 1 ClassIDSvc INFO getRegistryEntries: read 213 CLIDRegistry entries for module ALL CaloIDHelper_ID... INFO in createObj: creating a TileID helper object in the detector store AtlasDetectorID INFO initialize_from_dictionary - OK -TileNeighbour INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-19T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/TileNeighbour_reduced.txt +TileNeighbour INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/TileNeighbour_reduced.txt TileHWIDDetDesc... INFO in createObj: creating a TileHWID helper object in the detector store TileHWID INFO initialize_from_dictionary AtlasDetectorID INFO initialize_from_dictionary - OK @@ -196,9 +196,9 @@ CaloIDHelper_ID... INFO in createObj: creating a LArHEC_ID helper object in th AtlasDetectorID INFO initialize_from_dictionary - OK CaloIDHelper_ID... INFO in createObj: creating a LArFCAL_ID helper object in the detector store AtlasDetectorID INFO initialize_from_dictionary - OK -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-19T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCal2DNeighbors-April2011.txt -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-19T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCal3DNeighborsNext-April2011.txt -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-19T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCal3DNeighborsPrev-April2011.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCal2DNeighbors-April2011.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCal3DNeighborsNext-April2011.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCal3DNeighborsPrev-April2011.txt CaloIDHelper_ID... INFO in createObj: creating a LArMiniFCAL_ID helper object in the detector store AtlasDetectorID INFO initialize_from_dictionary - OK LArMiniFCAL_ID INFO initialize_from_dict - LArCalorimeter dictionary does NOT contain miniFCAL description. Unable to initialize LArMiniFCAL_ID. @@ -233,7 +233,7 @@ GeoModelSvc.Til... INFO Global positioning of barrel with rotation (0,0,0)) a GeoModelSvc.Til... INFO Global positioning of positive ext.barrel with rotation (0,0,0)) and translation (0,0,0) CLHEP::cm GeoModelSvc.Til... INFO Global positioning of negative ext.barrel with rotation (0,0,0)) and translation (0,0,1) CLHEP::cm TileDetDescrMan... INFO Entering create_elements() -GeoModelSvc INFO GeoModelSvc.TileDetectorTool SZ= 5196Kb Time = 1.54S +GeoModelSvc INFO GeoModelSvc.TileDetectorTool SZ= 5196Kb Time = 1.62S ClassIDSvc INFO getRegistryEntries: read 65 CLIDRegistry entries for module ALL TileInfoLoader INFO Initializing....TileInfoLoader TileInfoLoader INFO New ATLAS geometry detected: ATLAS-R2-2016-01-00-01 (010001) version 10001 @@ -255,11 +255,11 @@ TileInfoLoader INFO Sampling fraction for E2 cells 1/107 TileInfoLoader INFO Sampling fraction for E3 cells 1/97 TileInfoLoader INFO Sampling fraction for E4 cells 1/75 TileInfoLoader INFO Sampling fraction for E4' cells 1/75 -TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-19T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulsehi_physics.dat -TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-19T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulselo_physics.dat -TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-19T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulse_adder_tower_physics.dat -TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-19T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulse_adder_muonRcv_physics.dat -TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-19T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulse_adder_muon_physics.dat +TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulsehi_physics.dat +TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulselo_physics.dat +TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulse_adder_tower_physics.dat +TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulse_adder_muonRcv_physics.dat +TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulse_adder_muon_physics.dat CaloIDHelper_ID... INFO in createObj: creating a CaloLVL1_ID helper object in the detector store CaloLVL1_ID INFO initialize_from_dictionary AtlasDetectorID INFO initialize_from_dictionary - OK @@ -268,12 +268,12 @@ TileCablingSvc INFO Cabling for RUN2 (2014-2017) ATLAS geometry is set via TileCablingSvc INFO Setting Cabling type to 4 TileInfoLoader INFO Placed TileInfo object in the detector store. ToolSvc.TileBad... INFO Creating TileCondProxyCool(ToolSvc.TileBadChanLegacyTool.TileCondProxyCool_OnlBch) for folder: "/TILE/ONL01/STATUS/ADC" -IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileCondProxyCool<TileCalibDrawerBch>[0x1cb87600]+7f1630fd78a6 bound to CondAttrListCollection[/TILE/ONL01/STATUS/ADC] +IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileCondProxyCool<TileCalibDrawerBch>[0x1cb3b600]+7ff9b891ea54 bound to CondAttrListCollection[/TILE/ONL01/STATUS/ADC] ToolSvc.TileBad... INFO Creating TileCondProxyCool(ToolSvc.TileBadChanLegacyTool.TileCondProxyCool_OflBch) for folder: "/TILE/OFL02/STATUS/ADC" -IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileCondProxyCool<TileCalibDrawerBch>[0x1cb88c00]+7f1630fd78a6 bound to CondAttrListCollection[/TILE/OFL02/STATUS/ADC] +IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileCondProxyCool<TileCalibDrawerBch>[0x1cb3cc00]+7ff9b891ea54 bound to CondAttrListCollection[/TILE/OFL02/STATUS/ADC] ToolSvc.TileBad... INFO ProxyOnlBch and ProxyOflBch will be used for bad channel status -IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileBadChanLegacyTool[0x16e05000]+7f1630d8460e bound to /TILE/ONL01/STATUS/ADC -IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileBadChanLegacyTool[0x16e05000]+7f1630d8460e bound to /TILE/OFL02/STATUS/ADC +IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileBadChanLegacyTool[0xb68c000]+7ff9b8738c6e bound to /TILE/ONL01/STATUS/ADC +IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileBadChanLegacyTool[0xb68c000]+7ff9b8738c6e bound to /TILE/OFL02/STATUS/ADC AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00 ClassIDSvc INFO getRegistryEntries: read 265 CLIDRegistry entries for module ALL CondInputLoader INFO Initializing CondInputLoader... @@ -341,23 +341,21 @@ EventPersistenc... INFO Added successfully Conversion service:AthenaPoolCnvSvc EventPersistenc... INFO Added successfully Conversion service:TagInfoMgr ClassIDSvc INFO getRegistryEntries: read 109 CLIDRegistry entries for module ALL IOVDbSvc INFO Opening COOL connection for COOLOFL_LAR/OFLP200 -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to LARAlign-IOVDEP-00 for folder /LAR/Align -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to LArCellPositionShift-ideal for folder /LAR/LArCellPositionShift +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to LARAlign-IOVDEP-00 for folder /LAR/Align +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to LArCellPositionShift-ideal for folder /LAR/LArCellPositionShift IOVDbSvc INFO Disconnecting from COOLOFL_LAR/OFLP200 IOVDbSvc INFO Opening COOL connection for COOLOFL_TILE/OFLP200 -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCes-SIM-06 for folder /TILE/OFL02/CALIB/CES -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCisFitLin-COM-00 for folder /TILE/OFL02/CALIB/CIS/FIT/LIN -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCisFitNln-COM-00 for folder /TILE/OFL02/CALIB/CIS/FIT/NLN -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibEms-COM-00 for folder /TILE/OFL02/CALIB/EMS -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasFiber-000-00 for folder /TILE/OFL02/CALIB/LAS/FIBER -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasLin-COM-00 for folder /TILE/OFL02/CALIB/LAS/LIN -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasNln-COM-00 for folder /TILE/OFL02/CALIB/LAS/NLN -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02NoiseSample-TwoGauss-19 for folder /TILE/OFL02/NOISE/SAMPLE -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02StatusAdc-IOVDEP-03 for folder /TILE/OFL02/STATUS/ADC -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02TimeChanneloffsetPhy-000-00 for folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCes-SIM-06 for folder /TILE/OFL02/CALIB/CES +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCisFitLin-COM-00 for folder /TILE/OFL02/CALIB/CIS/FIT/LIN +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCisFitNln-COM-00 for folder /TILE/OFL02/CALIB/CIS/FIT/NLN +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibEms-COM-00 for folder /TILE/OFL02/CALIB/EMS +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasFiber-000-00 for folder /TILE/OFL02/CALIB/LAS/FIBER +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasLin-COM-00 for folder /TILE/OFL02/CALIB/LAS/LIN +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasNln-COM-00 for folder /TILE/OFL02/CALIB/LAS/NLN +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02NoiseSample-TwoGauss-19 for folder /TILE/OFL02/NOISE/SAMPLE +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02StatusAdc-IOVDEP-03 for folder /TILE/OFL02/STATUS/ADC +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02TimeChanneloffsetPhy-000-00 for folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY IOVDbSvc INFO Disconnecting from COOLOFL_TILE/OFLP200 -DbSession INFO Open DbSession -Domain[ROOT_All] INFO > Access DbDomain READ [ROOT_All] Domain[ROOT_All] INFO -> Access DbDatabase READ [ROOT_All] EACFEBD4-9BD2-E211-848A-02163E006B20 Domain[ROOT_All] INFO /cvmfs/atlas-condb.cern.ch/repo/conditions/cond09/cond09_mc.000057.gen.COND/cond09_mc.000057.gen.COND._0001.pool.root RootDatabase.open INFO /cvmfs/atlas-condb.cern.ch/repo/conditions/cond09/cond09_mc.000057.gen.COND/cond09_mc.000057.gen.COND._0001.pool.root File version:52200 @@ -379,12 +377,12 @@ CaloIDHelper_ID... INFO in createObj: creating a LArHEC_SuperCell_ID helper ob AtlasDetectorID INFO initialize_from_dictionary - OK CaloIDHelper_ID... INFO in createObj: creating a LArFCAL_SuperCell_ID helper object in the detector store AtlasDetectorID INFO initialize_from_dictionary - OK -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-19T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells2DNeighborsNew-April2014.txt -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-19T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells3DNeighborsNextNew-April2014.txt -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-19T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells3DNeighborsPrevNew-April2014.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells2DNeighborsNew-April2014.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells3DNeighborsNextNew-April2014.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells3DNeighborsPrevNew-April2014.txt CaloIDHelper_ID... INFO in createObj: creating a Tile_SuperCell_ID helper object in the detector store AtlasDetectorID INFO initialize_from_dictionary - OK -TileNeighbour INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-19T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/TileSuperCellNeighbour.txt +TileNeighbour INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/TileSuperCellNeighbour.txt AtlasDetectorID INFO initialize_from_dictionary - OK CaloIdMgrDetDes... INFO Finished CaloIdMgrDetDes... INFO Initializing CaloIdMgr from values in CaloIdMgrDetDescrCnv @@ -423,14 +421,13 @@ ClassIDSvc INFO getRegistryEntries: read 154 CLIDRegistry entries for *** Starting test8 AthRNGSvc INFO Creating engine ToolSvc.tool2/ToolSvc.tool2 AthenaEventLoopMgr INFO ===>>> done processing event #1, run #1 1 events processed so far <<<=== +TileInfoLoader INFO Handling EndRun incident +TileInfoLoader INFO Removed TileInfo object from detector store. /cvmfs/atlas-co... INFO Database being retired... Domain[ROOT_All] INFO -> Deaccess DbDatabase READ [ROOT_All] EACFEBD4-9BD2-E211-848A-02163E006B20 /cvmfs/atlas-co... INFO Database being retired... Domain[ROOT_All] INFO -> Deaccess DbDatabase READ [ROOT_All] 8667C6F2-1559-DE11-A611-000423D9A21A Domain[ROOT_All] INFO > Deaccess DbDomain READ [ROOT_All] -TileInfoLoader INFO Handling EndRun incident -TileInfoLoader INFO Removed TileInfo object from detector store. -Domain[ROOT_All] INFO > Deaccess DbDomain READ [ROOT_All] ApplicationMgr INFO Application Manager Stopped successfully IncidentProcAlg1 INFO Finalize CondInputLoader INFO Finalizing CondInputLoader... @@ -438,32 +435,32 @@ test1 INFO Finalizing test1... IncidentProcAlg2 INFO Finalize PyComponentMgr INFO Finalizing PyComponentMgr... IdDictDetDescrCnv INFO in finalize -IOVDbSvc INFO Folder /LAR/Align (PoolRef) db-read 1/1 objs/chan/bytes 1/1/170 (( 18.62 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/CES (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/103344 (( 22.12 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/CIS/FIT/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/80 (( 1.98 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/CIS/FIT/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/80 (( 2.21 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/EMS (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/92 (( 2.05 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/LAS/FIBER (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/940 (( 2.95 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/LAS/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/72 (( 5.13 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/LAS/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/76 (( 3.02 ))s -IOVDbSvc INFO Folder /TILE/OFL02/NOISE/SAMPLE (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/641476 (( 26.42 ))s -IOVDbSvc INFO Folder /TILE/OFL02/STATUS/ADC (AttrListColl) db-read 1/2 objs/chan/bytes 277/277/97884 (( 0.04 ))s -IOVDbSvc INFO Folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/96 (( 0.04 ))s -IOVDbSvc INFO Folder /TILE/ONL01/STATUS/ADC (AttrListColl) db-read 1/2 objs/chan/bytes 277/277/76 (( 0.01 ))s -IOVDbSvc INFO Folder /LAR/LArCellPositionShift (PoolRef) db-read 1/1 objs/chan/bytes 1/1/195 (( 2.81 ))s -IOVDbSvc INFO Total payload read from COOL: 844581 bytes in (( 87.41 ))s +IOVDbFolder INFO Folder /LAR/Align (PoolRef) db-read 1/1 objs/chan/bytes 1/1/170 (( 0.10 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CES (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/103344 (( 0.09 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/80 (( 0.06 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/80 (( 0.06 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/EMS (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/92 (( 0.05 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/FIBER (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/940 (( 0.06 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/72 (( 0.04 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/76 (( 0.04 ))s +IOVDbFolder INFO Folder /TILE/OFL02/NOISE/SAMPLE (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/641476 (( 0.06 ))s +IOVDbFolder INFO Folder /TILE/OFL02/STATUS/ADC (AttrListColl) db-read 1/2 objs/chan/bytes 277/277/97884 (( 0.06 ))s +IOVDbFolder INFO Folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/96 (( 0.04 ))s +IOVDbFolder INFO Folder /TILE/ONL01/STATUS/ADC (AttrListColl) db-read 1/2 objs/chan/bytes 277/277/76 (( 0.02 ))s +IOVDbFolder INFO Folder /LAR/LArCellPositionShift (PoolRef) db-read 1/1 objs/chan/bytes 1/1/195 (( 0.03 ))s +IOVDbSvc INFO bytes in (( 0.75 ))s IOVDbSvc INFO Connection sqlite://;schema=mycool.db;dbname=OFLP200 : nConnect: 0 nFolders: 0 ReadTime: (( 0.00 ))s -IOVDbSvc INFO Connection COOLOFL_LAR/OFLP200 : nConnect: 2 nFolders: 2 ReadTime: (( 21.43 ))s -IOVDbSvc INFO Connection COOLOFL_TILE/OFLP200 : nConnect: 2 nFolders: 11 ReadTime: (( 65.98 ))s +IOVDbSvc INFO Connection COOLOFL_LAR/OFLP200 : nConnect: 2 nFolders: 2 ReadTime: (( 0.13 ))s +IOVDbSvc INFO Connection COOLOFL_TILE/OFLP200 : nConnect: 2 nFolders: 11 ReadTime: (( 0.61 ))s TileInfoLoader INFO TileInfoLoader::finalize() AthDictLoaderSvc INFO in finalize... ToolSvc INFO Removing all tools created by ToolSvc *****Chrono***** INFO **************************************************************************************************** *****Chrono***** INFO The Final CPU consumption ( Chrono ) Table (ordered) *****Chrono***** INFO **************************************************************************************************** -cObjR_ALL INFO Time User : Tot= 0.58 [s] Ave/Min/Max= 0.29(+- 0.27)/ 0.02/ 0.56 [s] #= 2 -cObj_ALL INFO Time User : Tot= 0.72 [s] Ave/Min/Max=0.048(+-0.155)/ 0/ 0.62 [s] #= 15 -ChronoStatSvc INFO Time User : Tot= 68.2 [s] #= 1 +cObjR_ALL INFO Time User : Tot= 0.71 [s] Ave/Min/Max=0.355(+-0.335)/ 0.02/ 0.69 [s] #= 2 +cObj_ALL INFO Time User : Tot= 0.93 [s] Ave/Min/Max=0.062(+-0.195)/ 0/ 0.78 [s] #= 15 +ChronoStatSvc INFO Time User : Tot= 70.9 [s] #= 1 *****Chrono***** INFO **************************************************************************************************** ChronoStatSvc.f... INFO Service finalized successfully ApplicationMgr INFO Application Manager Finalized successfully diff --git a/TileCalorimeter/TileRecUtils/share/TileRawChannelBuilder_test.ref b/TileCalorimeter/TileRecUtils/share/TileRawChannelBuilder_test.ref index 08cacd18480a8f5ef593cfc19ff50669587b3005..87ead7ac0b6b946a3f03b747b8ebf55263b612b3 100644 --- a/TileCalorimeter/TileRecUtils/share/TileRawChannelBuilder_test.ref +++ b/TileCalorimeter/TileRecUtils/share/TileRawChannelBuilder_test.ref @@ -1,14 +1,14 @@ -Fri Oct 26 18:16:28 CEST 2018 +Thu Dec 6 06:06:32 CET 2018 Preloading tcmalloc_minimal.so Py:Athena INFO including file "AthenaCommon/Preparation.py" -Py:Athena INFO using release [AthenaWorkDir-22.0.1] [x86_64-slc6-gcc62-dbg] [atlas-work3/6c320d97ca1] -- built on [2018-10-26T1702] +Py:Athena INFO using release [AthenaWorkDir-22.0.1] [x86_64-slc6-gcc62-dbg] [atlas-work3/fa0fd6d0989] -- built on [2018-12-06T0537] Py:Athena INFO including file "AthenaCommon/Atlas.UnixStandardJob.py" Py:Athena INFO executing ROOT6Setup Py:Athena INFO including file "AthenaCommon/Execution.py" Py:Athena INFO including file "TileRecUtils/TileRawChannelBuilder_test.py" [?1034hSetGeometryVersion.py obtained major release version 22 Py:Athena INFO including file "IdDictDetDescrCnv/IdDictDetDescrCnv_joboptions.py" -Py:ConfigurableDb INFO Read module info for 5527 configurables from 50 genConfDb files +Py:ConfigurableDb INFO Read module info for 5473 configurables from 61 genConfDb files Py:ConfigurableDb INFO No duplicates have been found: that's good ! EventInfoMgtInit: Got release version Athena-22.0.1 Py:IOVDbSvc.CondDB INFO Setting up conditions DB access to instance OFLP200 @@ -28,8 +28,8 @@ ApplicationMgr INFO Updating Gaudi::PluginService::SetDebug(level) to leve ApplicationMgr INFO Updating Gaudi::PluginService::SetDebug(level) to level= 'PluginDebugLevel':0 ApplicationMgr SUCCESS ==================================================================================================================================== - Welcome to ApplicationMgr (GaudiCoreSvc v30r3) - running on lxplus042.cern.ch on Fri Oct 26 18:16:44 2018 + Welcome to ApplicationMgr (GaudiCoreSvc v30r5) + running on lxplus071.cern.ch on Thu Dec 6 06:06:53 2018 ==================================================================================================================================== ApplicationMgr INFO Successfully loaded modules : AthenaServices ApplicationMgr INFO Application Manager Configured successfully @@ -46,8 +46,8 @@ PoolSvc INFO io_register[PoolSvc](xmlcatalog_file:PoolFileCatalog.x PoolSvc INFO Set connectionsvc retry/timeout/IDLE timeout to 'ConnectionRetrialPeriod':300/ 'ConnectionRetrialTimeOut':3600/ 'ConnectionTimeOut':5 seconds with connection cleanup disabled PoolSvc INFO Frontier compression level set to 5 DBReplicaSvc INFO Frontier server at (serverurl=http://atlasfrontier-local.cern.ch:8000/atlr)(serverurl=http://atlasfrontier-ai.cern.ch:8000/atlr)(serverurl=http://lcgft-atlas.gridpp.rl.ac.uk:3128/frontierATLAS)(serverurl=http://ccfrontier.in2p3.fr:23128/ccin2p3-AtlasFrontier)(proxyurl=http://ca-proxy.cern.ch:3128)(proxyurl=http://ca-proxy-meyrin.cern.ch:3128)(proxyurl=http://ca-proxy-wigner.cern.ch:3128)(proxyurl=http://atlasbpfrontier.cern.ch:3127)(proxyurl=http://atlasbpfrontier.fnal.gov:3127) will be considered for COOL data -DBReplicaSvc INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-10-24T2300/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/dbreplica.config -DBReplicaSvc INFO Total of 10 servers found for host lxplus042.cern.ch [ATLF ATLAS_COOLPROD atlas_dd ATLAS_CONFIG INT8R INTR ATONR_COOL ATONR_CONF DEVDB11 ATLF ] +DBReplicaSvc INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/dbreplica.config +DBReplicaSvc INFO Total of 10 servers found for host lxplus071.cern.ch [ATLF ATLAS_COOLPROD atlas_dd ATLAS_CONFIG INT8R INTR ATONR_COOL ATONR_CONF DEVDB11 ATLF ] PoolSvc INFO Successfully setup replica sorting algorithm PoolSvc INFO Setting up APR FileCatalog and Streams PoolSvc WARNING Unable to locate catalog for prfile:poolcond/PoolCat_oflcond.xml check your ATLAS_POOLCOND_PATH and DATAPATH variables @@ -60,7 +60,7 @@ IOVDbSvc INFO Opened read transaction for POOL PersistencySvc IOVDbSvc INFO Only 5 POOL conditions files will be open at once IOVDbSvc INFO Cache alignment will be done in 3 slices IOVDbSvc INFO Global tag: OFLCOND-RUN12-SDR-35 set from joboptions -IOVDbSvc INFO Read from meta data only for folder /TagInfo +IOVDbFolder INFO Read from meta data only for folder /TagInfo IOVDbSvc INFO Initialised with 3 connections and 14 folders IOVDbSvc INFO Service IOVDbSvc initialised successfully IOVDbSvc INFO preLoadAddresses: Removing folder /TagInfo. It should only be in the file meta data and was not found. @@ -83,7 +83,7 @@ IOVDbSvc INFO Added taginfo remove for /TILE/OFL02/STATUS/ADC IOVDbSvc INFO Added taginfo remove for /TILE/OFL02/TIME/CHANNELOFFSET/PHY IOVDbSvc INFO Added taginfo remove for /TILE/ONL01/STATUS/ADC IOVDbSvc INFO Added taginfo remove for /LAR/LArCellPositionShift -ClassIDSvc INFO getRegistryEntries: read 1917 CLIDRegistry entries for module ALL +ClassIDSvc INFO getRegistryEntries: read 1919 CLIDRegistry entries for module ALL ClassIDSvc INFO getRegistryEntries: read 17 CLIDRegistry entries for module ALL DetDescrCnvSvc INFO initializing DetDescrCnvSvc INFO Found DetectorStore service @@ -172,7 +172,7 @@ EndcapDMConstru... INFO Start building EC electronics geometry multi-layered version of absorbers activated, mlabs == 1 ================================================ EndcapDMConstru... INFO Start building EC electronics geometry -GeoModelSvc INFO GeoModelSvc.LArDetectorToolNV SZ= 29156Kb Time = 1.45S +GeoModelSvc INFO GeoModelSvc.LArDetectorToolNV SZ= 28544Kb Time = 1.58S GeoModelSvc.Til... INFO Entering TileDetectorTool::create() TileDddbManager INFO m_tag = ATLAS-R2-2016-01-00-01 TileDddbManager INFO n_tiglob = 5 @@ -184,7 +184,7 @@ TileDddbManager INFO n_tileSwitches = 1 ClassIDSvc INFO getRegistryEntries: read 213 CLIDRegistry entries for module ALL CaloIDHelper_ID... INFO in createObj: creating a TileID helper object in the detector store AtlasDetectorID INFO initialize_from_dictionary - OK -TileNeighbour INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-10-24T2300/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/TileNeighbour_reduced.txt +TileNeighbour INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/TileNeighbour_reduced.txt TileHWIDDetDesc... INFO in createObj: creating a TileHWID helper object in the detector store TileHWID INFO initialize_from_dictionary AtlasDetectorID INFO initialize_from_dictionary - OK @@ -196,9 +196,9 @@ CaloIDHelper_ID... INFO in createObj: creating a LArHEC_ID helper object in th AtlasDetectorID INFO initialize_from_dictionary - OK CaloIDHelper_ID... INFO in createObj: creating a LArFCAL_ID helper object in the detector store AtlasDetectorID INFO initialize_from_dictionary - OK -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-10-24T2300/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCal2DNeighbors-April2011.txt -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-10-24T2300/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCal3DNeighborsNext-April2011.txt -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-10-24T2300/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCal3DNeighborsPrev-April2011.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCal2DNeighbors-April2011.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCal3DNeighborsNext-April2011.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCal3DNeighborsPrev-April2011.txt CaloIDHelper_ID... INFO in createObj: creating a LArMiniFCAL_ID helper object in the detector store AtlasDetectorID INFO initialize_from_dictionary - OK LArMiniFCAL_ID INFO initialize_from_dict - LArCalorimeter dictionary does NOT contain miniFCAL description. Unable to initialize LArMiniFCAL_ID. @@ -233,7 +233,7 @@ GeoModelSvc.Til... INFO Global positioning of barrel with rotation (0,0,0)) a GeoModelSvc.Til... INFO Global positioning of positive ext.barrel with rotation (0,0,0)) and translation (0,0,0) CLHEP::cm GeoModelSvc.Til... INFO Global positioning of negative ext.barrel with rotation (0,0,0)) and translation (0,0,1) CLHEP::cm TileDetDescrMan... INFO Entering create_elements() -GeoModelSvc INFO GeoModelSvc.TileDetectorTool SZ= 5200Kb Time = 1.55S +GeoModelSvc INFO GeoModelSvc.TileDetectorTool SZ= 5196Kb Time = 1.65S ClassIDSvc INFO getRegistryEntries: read 65 CLIDRegistry entries for module ALL TileInfoLoader INFO Initializing....TileInfoLoader TileInfoLoader INFO New ATLAS geometry detected: ATLAS-R2-2016-01-00-01 (010001) version 10001 @@ -255,11 +255,11 @@ TileInfoLoader INFO Sampling fraction for E2 cells 1/107 TileInfoLoader INFO Sampling fraction for E3 cells 1/97 TileInfoLoader INFO Sampling fraction for E4 cells 1/75 TileInfoLoader INFO Sampling fraction for E4' cells 1/75 -TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-10-24T2300/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulsehi_physics.dat -TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-10-24T2300/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulselo_physics.dat -TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-10-24T2300/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulse_adder_tower_physics.dat -TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-10-24T2300/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulse_adder_muonRcv_physics.dat -TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-10-24T2300/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulse_adder_muon_physics.dat +TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulsehi_physics.dat +TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulselo_physics.dat +TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulse_adder_tower_physics.dat +TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulse_adder_muonRcv_physics.dat +TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulse_adder_muon_physics.dat CaloIDHelper_ID... INFO in createObj: creating a CaloLVL1_ID helper object in the detector store CaloLVL1_ID INFO initialize_from_dictionary AtlasDetectorID INFO initialize_from_dictionary - OK @@ -268,12 +268,12 @@ TileCablingSvc INFO Cabling for RUN2 (2014-2017) ATLAS geometry is set via TileCablingSvc INFO Setting Cabling type to 4 TileInfoLoader INFO Placed TileInfo object in the detector store. ToolSvc.TileBad... INFO Creating TileCondProxyCool(ToolSvc.TileBadChanLegacyTool.TileCondProxyCool_OnlBch) for folder: "/TILE/ONL01/STATUS/ADC" -IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileCondProxyCool<TileCalibDrawerBch>[0x1cded700]+7f3e38196f96 bound to CondAttrListCollection[/TILE/ONL01/STATUS/ADC] +IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileCondProxyCool<TileCalibDrawerBch>[0x1d977600]+7f8cdde5ea54 bound to CondAttrListCollection[/TILE/ONL01/STATUS/ADC] ToolSvc.TileBad... INFO Creating TileCondProxyCool(ToolSvc.TileBadChanLegacyTool.TileCondProxyCool_OflBch) for folder: "/TILE/OFL02/STATUS/ADC" -IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileCondProxyCool<TileCalibDrawerBch>[0x1cdecc00]+7f3e38196f96 bound to CondAttrListCollection[/TILE/OFL02/STATUS/ADC] +IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileCondProxyCool<TileCalibDrawerBch>[0x1d978c00]+7f8cdde5ea54 bound to CondAttrListCollection[/TILE/OFL02/STATUS/ADC] ToolSvc.TileBad... INFO ProxyOnlBch and ProxyOflBch will be used for bad channel status -IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileBadChanLegacyTool[0x1730b000]+7f3e37f4890e bound to /TILE/ONL01/STATUS/ADC -IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileBadChanLegacyTool[0x1730b000]+7f3e37f4890e bound to /TILE/OFL02/STATUS/ADC +IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileBadChanLegacyTool[0xc4f4000]+7f8cddc78c6e bound to /TILE/ONL01/STATUS/ADC +IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileBadChanLegacyTool[0xc4f4000]+7f8cddc78c6e bound to /TILE/OFL02/STATUS/ADC AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00 ClassIDSvc INFO getRegistryEntries: read 265 CLIDRegistry entries for module ALL CondInputLoader INFO Initializing CondInputLoader... @@ -329,7 +329,7 @@ xAODMaker::Even... INFO Will take information from the EventInfo object ClassIDSvc INFO getRegistryEntries: read 319 CLIDRegistry entries for module ALL PyComponentMgr INFO Initializing PyComponentMgr... testalg1 INFO Initializing testalg1... -ClassIDSvc INFO getRegistryEntries: read 4935 CLIDRegistry entries for module ALL +ClassIDSvc INFO getRegistryEntries: read 5067 CLIDRegistry entries for module ALL ToolSvc.tool1 INFO TileRawChannelBuilder::initialize() ToolSvc.TileBea... INFO in initialize() ToolSvc.tool2 INFO TileRawChannelBuilder::initialize() @@ -358,23 +358,21 @@ EventPersistenc... INFO Added successfully Conversion service:AthenaPoolCnvSvc EventPersistenc... INFO Added successfully Conversion service:TagInfoMgr ClassIDSvc INFO getRegistryEntries: read 109 CLIDRegistry entries for module ALL IOVDbSvc INFO Opening COOL connection for COOLOFL_LAR/OFLP200 -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to LARAlign-IOVDEP-00 for folder /LAR/Align -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to LArCellPositionShift-ideal for folder /LAR/LArCellPositionShift +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to LARAlign-IOVDEP-00 for folder /LAR/Align +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to LArCellPositionShift-ideal for folder /LAR/LArCellPositionShift IOVDbSvc INFO Disconnecting from COOLOFL_LAR/OFLP200 IOVDbSvc INFO Opening COOL connection for COOLOFL_TILE/OFLP200 -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCes-SIM-06 for folder /TILE/OFL02/CALIB/CES -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCisFitLin-COM-00 for folder /TILE/OFL02/CALIB/CIS/FIT/LIN -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCisFitNln-COM-00 for folder /TILE/OFL02/CALIB/CIS/FIT/NLN -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibEms-COM-00 for folder /TILE/OFL02/CALIB/EMS -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasFiber-000-00 for folder /TILE/OFL02/CALIB/LAS/FIBER -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasLin-COM-00 for folder /TILE/OFL02/CALIB/LAS/LIN -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasNln-COM-00 for folder /TILE/OFL02/CALIB/LAS/NLN -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02NoiseSample-TwoGauss-19 for folder /TILE/OFL02/NOISE/SAMPLE -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02StatusAdc-IOVDEP-03 for folder /TILE/OFL02/STATUS/ADC -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02TimeChanneloffsetPhy-000-00 for folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCes-SIM-06 for folder /TILE/OFL02/CALIB/CES +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCisFitLin-COM-00 for folder /TILE/OFL02/CALIB/CIS/FIT/LIN +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCisFitNln-COM-00 for folder /TILE/OFL02/CALIB/CIS/FIT/NLN +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibEms-COM-00 for folder /TILE/OFL02/CALIB/EMS +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasFiber-000-00 for folder /TILE/OFL02/CALIB/LAS/FIBER +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasLin-COM-00 for folder /TILE/OFL02/CALIB/LAS/LIN +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasNln-COM-00 for folder /TILE/OFL02/CALIB/LAS/NLN +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02NoiseSample-TwoGauss-19 for folder /TILE/OFL02/NOISE/SAMPLE +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02StatusAdc-IOVDEP-03 for folder /TILE/OFL02/STATUS/ADC +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02TimeChanneloffsetPhy-000-00 for folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY IOVDbSvc INFO Disconnecting from COOLOFL_TILE/OFLP200 -DbSession INFO Open DbSession -Domain[ROOT_All] INFO > Access DbDomain READ [ROOT_All] Domain[ROOT_All] INFO -> Access DbDatabase READ [ROOT_All] EACFEBD4-9BD2-E211-848A-02163E006B20 Domain[ROOT_All] INFO /cvmfs/atlas-condb.cern.ch/repo/conditions/cond09/cond09_mc.000057.gen.COND/cond09_mc.000057.gen.COND._0001.pool.root RootDatabase.open INFO /cvmfs/atlas-condb.cern.ch/repo/conditions/cond09/cond09_mc.000057.gen.COND/cond09_mc.000057.gen.COND._0001.pool.root File version:52200 @@ -396,12 +394,12 @@ CaloIDHelper_ID... INFO in createObj: creating a LArHEC_SuperCell_ID helper ob AtlasDetectorID INFO initialize_from_dictionary - OK CaloIDHelper_ID... INFO in createObj: creating a LArFCAL_SuperCell_ID helper object in the detector store AtlasDetectorID INFO initialize_from_dictionary - OK -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-10-24T2300/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells2DNeighborsNew-April2014.txt -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-10-24T2300/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells3DNeighborsNextNew-April2014.txt -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-10-24T2300/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells3DNeighborsPrevNew-April2014.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells2DNeighborsNew-April2014.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells3DNeighborsNextNew-April2014.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells3DNeighborsPrevNew-April2014.txt CaloIDHelper_ID... INFO in createObj: creating a Tile_SuperCell_ID helper object in the detector store AtlasDetectorID INFO initialize_from_dictionary - OK -TileNeighbour INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-10-24T2300/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/TileSuperCellNeighbour.txt +TileNeighbour INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/TileSuperCellNeighbour.txt AtlasDetectorID INFO initialize_from_dictionary - OK CaloIdMgrDetDes... INFO Finished CaloIdMgrDetDes... INFO Initializing CaloIdMgr from values in CaloIdMgrDetDescrCnv @@ -432,11 +430,6 @@ TileBadChannels... INFO No drawer trips probabilities found in DB ClassIDSvc INFO getRegistryEntries: read 650 CLIDRegistry entries for module ALL ClassIDSvc INFO getRegistryEntries: read 67 CLIDRegistry entries for module ALL AthenaEventLoopMgr INFO ===>>> done processing event #1, run #1 1 events processed so far <<<=== -/cvmfs/atlas-co... INFO Database being retired... -Domain[ROOT_All] INFO -> Deaccess DbDatabase READ [ROOT_All] 8667C6F2-1559-DE11-A611-000423D9A21A -/cvmfs/atlas-co... INFO Database being retired... -Domain[ROOT_All] INFO -> Deaccess DbDatabase READ [ROOT_All] EACFEBD4-9BD2-E211-848A-02163E006B20 -Domain[ROOT_All] INFO > Deaccess DbDomain READ [ROOT_All] AthenaEventLoopMgr INFO ===>>> start processing event #2, run #1 1 events processed so far <<<=== AthenaEventLoopMgr INFO ===>>> done processing event #2, run #1 2 events processed so far <<<=== AthenaEventLoopMgr INFO ===>>> start processing event #3, run #1 2 events processed so far <<<=== @@ -447,6 +440,10 @@ ToolSvc.beaminfo4 INFO RChType = 0 AthenaEventLoopMgr INFO ===>>> done processing event #4, run #1 4 events processed so far <<<=== TileInfoLoader INFO Handling EndRun incident TileInfoLoader INFO Removed TileInfo object from detector store. +/cvmfs/atlas-co... INFO Database being retired... +Domain[ROOT_All] INFO -> Deaccess DbDatabase READ [ROOT_All] EACFEBD4-9BD2-E211-848A-02163E006B20 +/cvmfs/atlas-co... INFO Database being retired... +Domain[ROOT_All] INFO -> Deaccess DbDatabase READ [ROOT_All] 8667C6F2-1559-DE11-A611-000423D9A21A Domain[ROOT_All] INFO > Deaccess DbDomain READ [ROOT_All] ApplicationMgr INFO Application Manager Stopped successfully IncidentProcAlg1 INFO Finalize @@ -455,23 +452,23 @@ testalg1 INFO Finalizing testalg1... IncidentProcAlg2 INFO Finalize PyComponentMgr INFO Finalizing PyComponentMgr... IdDictDetDescrCnv INFO in finalize -IOVDbSvc INFO Folder /LAR/Align (PoolRef) db-read 1/1 objs/chan/bytes 1/1/170 (( 0.11 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/CES (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/103344 (( 0.09 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/CIS/FIT/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/80 (( 0.07 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/CIS/FIT/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/80 (( 0.07 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/EMS (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/92 (( 0.06 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/LAS/FIBER (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/940 (( 0.06 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/LAS/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/72 (( 0.07 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/LAS/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/76 (( 0.06 ))s -IOVDbSvc INFO Folder /TILE/OFL02/NOISE/SAMPLE (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/641476 (( 0.10 ))s -IOVDbSvc INFO Folder /TILE/OFL02/STATUS/ADC (AttrListColl) db-read 1/2 objs/chan/bytes 277/277/97884 (( 0.07 ))s -IOVDbSvc INFO Folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/96 (( 0.07 ))s -IOVDbSvc INFO Folder /TILE/ONL01/STATUS/ADC (AttrListColl) db-read 1/2 objs/chan/bytes 277/277/76 (( 0.02 ))s -IOVDbSvc INFO Folder /LAR/LArCellPositionShift (PoolRef) db-read 1/1 objs/chan/bytes 1/1/195 (( 0.06 ))s -IOVDbSvc INFO Total payload read from COOL: 844581 bytes in (( 0.91 ))s +IOVDbFolder INFO Folder /LAR/Align (PoolRef) db-read 1/1 objs/chan/bytes 1/1/170 (( 0.61 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CES (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/103344 (( 2.80 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/80 (( 0.61 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/80 (( 0.61 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/EMS (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/92 (( 0.83 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/FIBER (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/940 (( 0.88 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/72 (( 0.66 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/76 (( 0.58 ))s +IOVDbFolder INFO Folder /TILE/OFL02/NOISE/SAMPLE (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/641476 (( 0.66 ))s +IOVDbFolder INFO Folder /TILE/OFL02/STATUS/ADC (AttrListColl) db-read 1/2 objs/chan/bytes 277/277/97884 (( 0.04 ))s +IOVDbFolder INFO Folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/96 (( 0.04 ))s +IOVDbFolder INFO Folder /TILE/ONL01/STATUS/ADC (AttrListColl) db-read 1/2 objs/chan/bytes 277/277/76 (( 0.01 ))s +IOVDbFolder INFO Folder /LAR/LArCellPositionShift (PoolRef) db-read 1/1 objs/chan/bytes 1/1/195 (( 0.35 ))s +IOVDbSvc INFO bytes in (( 8.70 ))s IOVDbSvc INFO Connection sqlite://;schema=mycool.db;dbname=OFLP200 : nConnect: 0 nFolders: 0 ReadTime: (( 0.00 ))s -IOVDbSvc INFO Connection COOLOFL_LAR/OFLP200 : nConnect: 2 nFolders: 2 ReadTime: (( 0.16 ))s -IOVDbSvc INFO Connection COOLOFL_TILE/OFLP200 : nConnect: 2 nFolders: 11 ReadTime: (( 0.75 ))s +IOVDbSvc INFO Connection COOLOFL_LAR/OFLP200 : nConnect: 2 nFolders: 2 ReadTime: (( 0.96 ))s +IOVDbSvc INFO Connection COOLOFL_TILE/OFLP200 : nConnect: 2 nFolders: 11 ReadTime: (( 7.74 ))s TileInfoLoader INFO TileInfoLoader::finalize() AthDictLoaderSvc INFO in finalize... ToolSvc INFO Removing all tools created by ToolSvc @@ -485,9 +482,9 @@ ToolSvc.TileBea... INFO Finalizing *****Chrono***** INFO **************************************************************************************************** *****Chrono***** INFO The Final CPU consumption ( Chrono ) Table (ordered) *****Chrono***** INFO **************************************************************************************************** -cObjR_ALL INFO Time User : Tot= 0.65 [s] Ave/Min/Max=0.325(+-0.305)/ 0.02/ 0.63 [s] #= 2 -cObj_ALL INFO Time User : Tot= 0.85 [s] Ave/Min/Max=0.0567(+-0.176)/ 0/ 0.7 [s] #= 15 -ChronoStatSvc INFO Time User : Tot= 65.7 [s] #= 1 +cObjR_ALL INFO Time User : Tot= 0.78 [s] Ave/Min/Max= 0.39(+- 0.37)/ 0.02/ 0.76 [s] #= 2 +cObj_ALL INFO Time User : Tot= 1.02 [s] Ave/Min/Max=0.068(+-0.213)/ 0/ 0.85 [s] #= 15 +ChronoStatSvc INFO Time User : Tot= 67.8 [s] #= 1 *****Chrono***** INFO **************************************************************************************************** ChronoStatSvc.f... INFO Service finalized successfully ApplicationMgr INFO Application Manager Finalized successfully diff --git a/TileCalorimeter/TileSimAlgs/TileSimAlgs/TileDigitsFromPulse.h b/TileCalorimeter/TileSimAlgs/TileSimAlgs/TileDigitsFromPulse.h index 3d5f19008afa813acae830a026ce26b660342f5b..178f05448166b30ff62e1c567bd6992c07f23574 100644 --- a/TileCalorimeter/TileSimAlgs/TileSimAlgs/TileDigitsFromPulse.h +++ b/TileCalorimeter/TileSimAlgs/TileSimAlgs/TileDigitsFromPulse.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ //**************************************************************************** @@ -49,6 +49,9 @@ #ifndef TILESIMALGS_TILEDIGITSFROMPULSE_H #define TILESIMALGS_TILEDIGITSFROMPULSE_H +// Tile includes +#include "TileConditions/TileCondToolNoiseSample.h" + #include "AthenaBaseComps/AthAlgorithm.h" #include "CLHEP/Random/RandomEngine.h" #include "GaudiKernel/ServiceHandle.h" @@ -95,7 +98,8 @@ private: TileRawChannelUnit::UNIT m_rChUnit; //!< Units used for the TileRawChannels (ADC, pCb, etc.)(see TileInfo.h) TileFragHash::TYPE m_rChType; //!< Type of TileRawChannels (Digitizar, OF1, OF2, Fit, etc.)(see TileFragHash.h) - ToolHandle<TileCondToolNoiseSample> m_tileToolNoiseSample; + ToolHandle<TileCondToolNoiseSample> m_tileToolNoiseSample{this, + "TileCondToolNoiseSample", "TileCondToolNoiseSample", "Tile sample noise tool"}; CLHEP::HepRandomEngine * m_pHRengine; //!< Random number generator engine to use ServiceHandle <IAtRndmGenSvc> m_rndmSvc; //!< Random number service to use diff --git a/TileCalorimeter/TileSimAlgs/TileSimAlgs/TileDigitsMaker.h b/TileCalorimeter/TileSimAlgs/TileSimAlgs/TileDigitsMaker.h index dbbdb3066ebfa321fcd0015e05f402978a5b5c0c..a2141e9a5b9e1dbcace7b5e98228b4522be7a3c0 100644 --- a/TileCalorimeter/TileSimAlgs/TileSimAlgs/TileDigitsMaker.h +++ b/TileCalorimeter/TileSimAlgs/TileSimAlgs/TileDigitsMaker.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ //**************************************************************************** @@ -30,6 +30,10 @@ // Tile includes #include "TileEvent/TileHitContainer.h" #include "TileEvent/TileDigitsContainer.h" +#include "TileConditions/TileCondToolPulseShape.h" +#include "TileConditions/TileCondToolEmscale.h" +#include "TileConditions/TileCondToolNoiseSample.h" +#include "TileConditions/ITileBadChanTool.h" // Atlas includes #include "AthenaBaseComps/AthAlgorithm.h" @@ -52,10 +56,6 @@ class TileHWID; class TileInfo; class HWIdentifier; class TileCablingService; -class TileCondToolEmscale; -class TileCondToolNoiseSample; -class TileCondToolPulseShape; -class ITileBadChanTool; class TileBeamInfoProvider; class TileDQstatus; @@ -156,10 +156,18 @@ class TileDigitsMaker: public AthAlgorithm { ServiceHandle<IAtRndmGenSvc> m_rndmSvc; //!< Random number service to use - ToolHandle<TileCondToolEmscale> m_tileToolEmscale; //!< main Tile Calibration tool - ToolHandle<TileCondToolNoiseSample> m_tileToolNoiseSample; //!< tool which provided noise values - ToolHandle<TileCondToolPulseShape> m_tileToolPulseShape; //!< tool which provides pulse shapes - ToolHandle<ITileBadChanTool> m_tileBadChanTool; //!< tool which provides status of every channel + ToolHandle<TileCondToolNoiseSample> m_tileToolNoiseSample{this, + "TileCondToolNoiseSample", "TileCondToolNoiseSample", "Tile sample noise tool"}; + + ToolHandle<TileCondToolEmscale> m_tileToolEmscale{this, + "TileCondToolEmscale", "TileCondToolEmscale", "Tile EM scale calibration tool"}; + + ToolHandle<TileCondToolPulseShape> m_tileToolPulseShape{this, + "TileCondToolPulseShape", "TileCondToolPulseShape", "Tile pulse shape tool"}; + + ToolHandle<ITileBadChanTool> m_tileBadChanTool{this, + "TileBadChanTool", "TileBadChanTool", "Tile bad channel tool"}; + ToolHandle<TileBeamInfoProvider> m_beamInfo; //!< tool which provides DQstatus (for overlay) }; diff --git a/TileCalorimeter/TileSimAlgs/TileSimAlgs/TileHitToRawChannel.h b/TileCalorimeter/TileSimAlgs/TileSimAlgs/TileHitToRawChannel.h index 84ea5a6041534a453ce090cb391d80402c7abbec..f8dda86c1804c6a8d106f8be4759952eb759cd09 100644 --- a/TileCalorimeter/TileSimAlgs/TileSimAlgs/TileHitToRawChannel.h +++ b/TileCalorimeter/TileSimAlgs/TileSimAlgs/TileHitToRawChannel.h @@ -38,6 +38,7 @@ #include "AthenaBaseComps/AthAlgorithm.h" #include "StoreGate/ReadHandleKey.h" #include "StoreGate/WriteHandleKey.h" +#include "TileConditions/TileCondToolEmscale.h" // Gaudi includes #include "GaudiKernel/ToolHandle.h" @@ -57,7 +58,6 @@ class TileHWID; class TileInfo; class HWIdentifier; class TileCablingService; -class TileCondToolEmscale; /** @@ -114,7 +114,8 @@ class TileHitToRawChannel: public AthAlgorithm { IAtRndmGenSvc * m_atRndmGenSvc; //!< Random number generator engine to use CLHEP::HepRandomEngine * m_pHRengine; //!< Random number service to use - ToolHandle<TileCondToolEmscale> m_tileToolEmscale; //!< main Tile Calibration tool + ToolHandle<TileCondToolEmscale> m_tileToolEmscale{this, + "TileCondToolEmscale", "TileCondToolEmscale", "Tile EM scale calibration tool"}; ToolHandle<TileCondToolNoiseSample> m_tileToolNoiseSample{this, "TileCondToolNoiseSample", "TileCondToolNoiseSample", "Tile sample noise tool"}; diff --git a/TileCalorimeter/TileSimAlgs/TileSimAlgs/TileHitToTTL1.h b/TileCalorimeter/TileSimAlgs/TileSimAlgs/TileHitToTTL1.h index 0791fb1d92a155ded94a3c4f6c9a4bd35af01fe1..d40163eb4a7a44e0eaa39b6c41afb770779c6354 100644 --- a/TileCalorimeter/TileSimAlgs/TileSimAlgs/TileHitToTTL1.h +++ b/TileCalorimeter/TileSimAlgs/TileSimAlgs/TileHitToTTL1.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ //**************************************************************************** @@ -30,6 +30,8 @@ // Tile includes #include "TileEvent/TileHitContainer.h" #include "TileEvent/TileTTL1Container.h" +#include "TileConditions/TileCondToolEmscale.h" +#include "TileConditions/ITileBadChanTool.h" // Atlas includes #include "AthenaBaseComps/AthAlgorithm.h" @@ -51,8 +53,6 @@ class TileHWID; class TileInfo; class CaloLVL1_ID; class TileCablingService; -class TileCondToolEmscale; -class ITileBadChanTool; /** @class TileHitToTTL1 @@ -122,10 +122,12 @@ class TileHitToTTL1: public AthAlgorithm { ServiceHandle<IAtRndmGenSvc> m_rndmSvc; //!< Random number generator engine to use - ToolHandle<TileCondToolEmscale> m_tileToolEmscale; //!< main Tile Calibration tool + ToolHandle<TileCondToolEmscale> m_tileToolEmscale{this, + "TileCondToolEmscale", "TileCondToolEmscale", "Tile EM scale calibration tool"}; bool m_maskBadChannels; //!< if true then bad channels are masked - ToolHandle<ITileBadChanTool> m_tileBadChanTool; //!< Tile Bad Channel tool + ToolHandle<ITileBadChanTool> m_tileBadChanTool{this, + "TileBadChanTool", "TileBadChanTool", "Tile bad channel tool"}; }; diff --git a/TileCalorimeter/TileSimAlgs/TileSimAlgs/TileMuonReceiverDecision.h b/TileCalorimeter/TileSimAlgs/TileSimAlgs/TileMuonReceiverDecision.h index d3cb4372d0856e83f244e4dd2c80fcf8f38d48bb..79e0a8954fe2d287f5ce56e1271eacfbd93d7e50 100644 --- a/TileCalorimeter/TileSimAlgs/TileSimAlgs/TileMuonReceiverDecision.h +++ b/TileCalorimeter/TileSimAlgs/TileSimAlgs/TileMuonReceiverDecision.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ //**************************************************************************** @@ -33,6 +33,7 @@ // Tile includes #include "TileEvent/TileRawChannelContainer.h" #include "TileEvent/TileContainer.h" +#include "TileConditions/TileCondToolEmscale.h" // Atlas includes #include "AthenaBaseComps/AthAlgorithm.h" @@ -49,7 +50,7 @@ class TileID; class TileHWID; class TileInfo; class TileCablingService; -class TileCondToolEmscale; + class TileMuonReceiverDecision: public AthAlgorithm { @@ -88,7 +89,9 @@ class TileMuonReceiverDecision: public AthAlgorithm { float m_threshold_d5d6_hi; float m_selCutQf; - ToolHandle<TileCondToolEmscale> m_tileToolEmscale; //!< main Tile Calibration tool + ToolHandle<TileCondToolEmscale> m_tileToolEmscale{this, + "TileCondToolEmscale", "TileCondToolEmscale", "Tile EM scale calibration tool"}; + bool m_run2; }; diff --git a/TileCalorimeter/TileSimAlgs/TileSimAlgs/TilePulseForTileMuonReceiver.h b/TileCalorimeter/TileSimAlgs/TileSimAlgs/TilePulseForTileMuonReceiver.h index bba6100b5e3e64b5dc0cebd441ce8919c975c3af..4dd806693e04ce67b424f59c14c39625838d49db 100644 --- a/TileCalorimeter/TileSimAlgs/TileSimAlgs/TilePulseForTileMuonReceiver.h +++ b/TileCalorimeter/TileSimAlgs/TileSimAlgs/TilePulseForTileMuonReceiver.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ //**************************************************************************** @@ -39,6 +39,10 @@ #include "TileEvent/TileHitContainer.h" #include "TileEvent/TileDigitsContainer.h" #include "TileEvent/TileRawChannelContainer.h" +#include "TileConditions/TileCondToolPulseShape.h" +#include "TileConditions/TileCondToolEmscale.h" +#include "TileConditions/TileCondToolNoiseSample.h" +#include "TileConditions/ITileBadChanTool.h" // Atlas includes #include "AthenaBaseComps/AthAlgorithm.h" @@ -60,14 +64,7 @@ class TileHWID; class TileInfo; class TileCablingService; class TileEvent; - -class TileCondToolEmscale; -class TileCondToolNoiseSample; -class TileCondToolPulseShape; - class TileDQstatus; -class ITileBadChanTool; - class TileBeamInfoProvider; class TileRawChannelBuilderMF; @@ -134,10 +131,18 @@ class TilePulseForTileMuonReceiver: public AthAlgorithm { CLHEP::HepRandomEngine* m_pHRengine; //!< Random number generator engine to use ServiceHandle<IAtRndmGenSvc> m_rndmSvc; //!< Random number service to use - ToolHandle<TileCondToolEmscale> m_tileToolEmscale; //!< main Tile Calibration tool - ToolHandle<TileCondToolNoiseSample> m_tileToolNoiseSample; //!< tool which provided noise values - ToolHandle<TileCondToolPulseShape> m_tileToolPulseShape; //!< tool which provides pulse shapes - ToolHandle<ITileBadChanTool> m_tileBadChanTool; //!< tool which provides status of every channel + ToolHandle<TileCondToolNoiseSample> m_tileToolNoiseSample{this, + "TileCondToolNoiseSample", "TileCondToolNoiseSample", "Tile sample noise tool"}; + + ToolHandle<TileCondToolEmscale> m_tileToolEmscale{this, + "TileCondToolEmscale", "TileCondToolEmscale", "Tile EM scale calibration tool"}; + + ToolHandle<TileCondToolPulseShape> m_tileToolPulseShape{this, + "TileCondToolPulseShape", "TileCondToolPulseShape", "Tile pulse shape tool"}; + + ToolHandle<ITileBadChanTool> m_tileBadChanTool{this, + "TileBadChanTool", "TileBadChanTool", "Tile bad channel tool"}; + ToolHandle<TileBeamInfoProvider> m_beamInfo; //!< tool which provides DQstatus (for overlay) ToolHandle<TileRawChannelBuilderMF> m_MuRcvBuildTool; //!< tool to set up the reconstruction algorithm diff --git a/TileCalorimeter/TileSimAlgs/src/TileDigitsFromPulse.cxx b/TileCalorimeter/TileSimAlgs/src/TileDigitsFromPulse.cxx index 4286b18534eda55a014139efde348109f0afb742..4dfc452aa437fb6327dd29b4a1dad84e021d1776 100644 --- a/TileCalorimeter/TileSimAlgs/src/TileDigitsFromPulse.cxx +++ b/TileCalorimeter/TileSimAlgs/src/TileDigitsFromPulse.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ //***************************************************************************** @@ -60,7 +60,6 @@ TileDigitsFromPulse::TileDigitsFromPulse(std::string name, ISvcLocator* pSvcLoca AthAlgorithm(name, pSvcLocator), m_tileHWID(0), m_tileInfo(0), - m_tileToolNoiseSample("TileCondToolNoiseSample"), m_pHRengine(0), m_rndmSvc("AtRndmGenSvc", name) @@ -142,8 +141,10 @@ TileDigitsFromPulse::~TileDigitsFromPulse() { StatusCode TileDigitsFromPulse::initialize() { ATH_MSG_DEBUG("in initialize()"); - CHECK(detStore()->retrieve(m_tileHWID, "TileHWID")); - CHECK(detStore()->retrieve(m_tileInfo, "TileInfo")); + ATH_CHECK(detStore()->retrieve(m_tileHWID, "TileHWID")); + ATH_CHECK(detStore()->retrieve(m_tileInfo, "TileInfo")); + + ATH_CHECK(m_tileToolNoiseSample.retrieve()); ATH_MSG_INFO("output container: " << m_outputContainer); diff --git a/TileCalorimeter/TileSimAlgs/src/TileDigitsMaker.cxx b/TileCalorimeter/TileSimAlgs/src/TileDigitsMaker.cxx index 110e326fc018888df55b5c34fb2ba7176b357108..cf2c253b760804adc5bb16c45e4bbeb5cff2671c 100644 --- a/TileCalorimeter/TileSimAlgs/src/TileDigitsMaker.cxx +++ b/TileCalorimeter/TileSimAlgs/src/TileDigitsMaker.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ //**************************************************************************** @@ -23,11 +23,7 @@ #include "TileConditions/TileInfo.h" #include "TileCalibBlobObjs/TileCalibUtils.h" #include "TileConditions/TileCablingService.h" -#include "TileConditions/TileCondToolEmscale.h" -#include "TileConditions/TileCondToolNoiseSample.h" #include "TileConditions/TilePulseShapes.h" -#include "TileConditions/TileCondToolPulseShape.h" -#include "TileConditions/ITileBadChanTool.h" #include "TileEvent/TileRawChannelContainer.h" #include "TileRecUtils/TileBeamInfoProvider.h" @@ -93,10 +89,6 @@ TileDigitsMaker::TileDigitsMaker(std::string name, ISvcLocator* pSvcLocator) m_timeStepLo(0.0), m_pHRengine(0), m_rndmSvc ("AtRndmGenSvc", name), - m_tileToolEmscale("TileCondToolEmscale"), - m_tileToolNoiseSample("TileCondToolNoiseSample"), - m_tileToolPulseShape("TileCondToolPulseShape"), - m_tileBadChanTool("TileBadChanTool"), m_beamInfo("TileBeamInfoProvider/TileBeamInfoProvider") { declareProperty("FilterThreshold", m_filterThreshold = 100.0 * MeV, "Threshold on filtered digits (default - 100 MeV)"); @@ -105,12 +97,8 @@ TileDigitsMaker::TileDigitsMaker(std::string name, ISvcLocator* pSvcLocator) declareProperty("IntegerDigits", m_integerDigits = true); declareProperty("CalibrationRun", m_calibRun = false); declareProperty("RndmSvc", m_rndmSvc, "Random Number Service used in TileDigitsMaker"); - declareProperty("TileCondToolEmscale", m_tileToolEmscale, "Service to calibrate all channels"); - declareProperty("TileCondToolNoiseSample", m_tileToolNoiseSample); declareProperty("RndmEvtOverlay",m_rndmEvtOverlay = false,"Pileup and/or noise added by overlaying random events (default=false)"); - declareProperty("TileCondToolPulseShape",m_tileToolPulseShape); declareProperty("UseCoolPulseShapes",m_useCoolPulseShapes = true,"Pulse shapes from database (default=true)"); - declareProperty("TileBadChanTool",m_tileBadChanTool); declareProperty("MaskBadChannels",m_maskBadChannels = false,"Remove channels tagged bad (default=false)"); declareProperty("DoHSTruthReconstruction",m_doDigiTruth = true); declareProperty("AllChannels", m_allChannels = -1, "Create all channels, use 0 or 1 or 2 (default=-1 - unset)"); diff --git a/TileCalorimeter/TileSimAlgs/src/TileHitToRawChannel.cxx b/TileCalorimeter/TileSimAlgs/src/TileHitToRawChannel.cxx index 3f8c659ce764c571724d9eb1e16843ba13288578..0faa792c41357da3a5fe39622acc21b0908a5498 100644 --- a/TileCalorimeter/TileSimAlgs/src/TileHitToRawChannel.cxx +++ b/TileCalorimeter/TileSimAlgs/src/TileHitToRawChannel.cxx @@ -22,7 +22,6 @@ #include "TileCalibBlobObjs/TileCalibUtils.h" #include "TileConditions/TileInfo.h" #include "TileConditions/TileCablingService.h" -#include "TileConditions/TileCondToolEmscale.h" #include "TileEvent/TileHitContainer.h" // Calo includes @@ -61,15 +60,13 @@ TileHitToRawChannel::TileHitToRawChannel(std::string name, ISvcLocator* pSvcLoca , m_ampMaxHi(0.0) , m_atRndmGenSvc(0) , m_pHRengine(0) - , m_tileToolEmscale("TileCondToolEmscale") { m_rChUnit = TileRawChannelUnit::ADCcounts; m_rChType = TileFragHash::Default; declareProperty("TileInfoName", m_infoName = "TileInfo"); - declareProperty("DeltaT",m_deltaT = -1.0); // keep hits only within deltaT; - declareProperty("calibrateEnergy",m_calibrateEnergy = false); // convert or not to pCb - declareProperty("TileCondToolEmscale" , m_tileToolEmscale); + declareProperty("DeltaT", m_deltaT = -1.0); // keep hits only within deltaT; + declareProperty("calibrateEnergy", m_calibrateEnergy = false); // convert or not to pCb } TileHitToRawChannel::~TileHitToRawChannel() { diff --git a/TileCalorimeter/TileSimAlgs/src/TileHitToTTL1.cxx b/TileCalorimeter/TileSimAlgs/src/TileHitToTTL1.cxx index 381133e24d24080d017dcb8b30e97188ca6a4f3d..6d4dd7210bd9871ec9876d6f6abfb28af17294de 100644 --- a/TileCalorimeter/TileSimAlgs/src/TileHitToTTL1.cxx +++ b/TileCalorimeter/TileSimAlgs/src/TileHitToTTL1.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ //***************************************************************************** @@ -28,8 +28,6 @@ #include "TileIdentifier/TileHWID.h" #include "TileConditions/TileInfo.h" #include "TileConditions/TileCablingService.h" -#include "TileConditions/TileCondToolEmscale.h" -#include "TileConditions/ITileBadChanTool.h" #include "TileCalibBlobObjs/TileCalibUtils.h" // Calo includes @@ -78,18 +76,14 @@ TileHitToTTL1::TileHitToTTL1(std::string name, ISvcLocator* pSvcLocator) , m_tileThresh(false) , m_pHRengine(0) , m_rndmSvc ("AtRndmGenSvc", name) - , m_tileToolEmscale("TileCondToolEmscale") - , m_tileBadChanTool("TileBadChanTool") { m_infoName = "TileInfo"; m_TileTTL1Type = "Standard"; declareProperty("TileInfoName", m_infoName); - declareProperty("TileTTL1Type",m_TileTTL1Type); + declareProperty("TileTTL1Type", m_TileTTL1Type); declareProperty("RndmSvc", m_rndmSvc, "Random Number Service used in TileHitToTTL1"); - declareProperty("TileCondToolEmscale" , m_tileToolEmscale); - declareProperty("maskBadChannels",m_maskBadChannels = true); - declareProperty("TileBadChanTool", m_tileBadChanTool); + declareProperty("maskBadChannels", m_maskBadChannels = true); } TileHitToTTL1::~TileHitToTTL1() { diff --git a/TileCalorimeter/TileSimAlgs/src/TileMuonReceiverDecision.cxx b/TileCalorimeter/TileSimAlgs/src/TileMuonReceiverDecision.cxx index 5a6187d60303b8cbe239340caa5db1505db61236..ac75cea888b94fa26a1450a9f037a79a4bb54b1b 100644 --- a/TileCalorimeter/TileSimAlgs/src/TileMuonReceiverDecision.cxx +++ b/TileCalorimeter/TileSimAlgs/src/TileMuonReceiverDecision.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ //**************************************************************************** @@ -26,7 +26,6 @@ #include "TileIdentifier/TileHWID.h" #include "TileCalibBlobObjs/TileCalibUtils.h" #include "TileConditions/TileCablingService.h" -#include "TileConditions/TileCondToolEmscale.h" #include "TileConditions/TileInfo.h" #include "TileEvent/TileMuonReceiverObj.h" @@ -46,7 +45,6 @@ TileMuonReceiverDecision::TileMuonReceiverDecision(std::string name, ISvcLocator m_tileHWID(0), m_cablingService(0), m_tileInfo(0), - m_tileToolEmscale("TileCondToolEmscale"), m_run2(true) { // declare properties... @@ -55,7 +53,6 @@ TileMuonReceiverDecision::TileMuonReceiverDecision(std::string name, ISvcLocator declareProperty( "MuonReceiverEneThreshCellD6High" , m_threshold_d6_hi = 600. , "Setting the highest trigger threshold for cell D6 in MeV (Def=600 MeV)"); declareProperty( "MuonReceiverEneThreshCellD6andD5High" , m_threshold_d5d6_hi = 600. , "Setting the highest trigger threshold for cell D5+D6 in MeV (Def=600 MeV)"); declareProperty( "SelectionCutForMatchedFilterQf" , m_selCutQf=0. , "Selection cut for the quality factor of the matched filters"); - declareProperty( "TileCondToolEmscale" , m_tileToolEmscale , "Service to calibrate all channels"); declareProperty( "TileInfoName" , m_infoName = "TileInfo" ); } diff --git a/TileCalorimeter/TileSimAlgs/src/TilePulseForTileMuonReceiver.cxx b/TileCalorimeter/TileSimAlgs/src/TilePulseForTileMuonReceiver.cxx index 7c7f960daefba6c2838efe7bbf025320a4cfb84c..0c108e46661c203b02fd7f55112f549c4e2c1628 100644 --- a/TileCalorimeter/TileSimAlgs/src/TilePulseForTileMuonReceiver.cxx +++ b/TileCalorimeter/TileSimAlgs/src/TilePulseForTileMuonReceiver.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ //*************************************************************************************** @@ -34,11 +34,7 @@ #include "TileIdentifier/TileHWID.h" #include "TileConditions/TileInfo.h" #include "TileConditions/TileCablingService.h" -#include "TileConditions/TileCondToolEmscale.h" -#include "TileConditions/TileCondToolNoiseSample.h" #include "TileConditions/TilePulseShapes.h" -#include "TileConditions/TileCondToolPulseShape.h" -#include "TileConditions/ITileBadChanTool.h" #include "TileCalibBlobObjs/TileCalibUtils.h" #include "TileRecUtils/TileRawChannelBuilder.h" #include "TileRecUtils/TileRawChannelBuilderMF.h" @@ -81,10 +77,6 @@ TilePulseForTileMuonReceiver::TilePulseForTileMuonReceiver(std::string name, ISv , m_timeStep(0.0) , m_pHRengine(0) , m_rndmSvc("AtRndmGenSvc", name) - , m_tileToolEmscale("TileCondToolEmscale") - , m_tileToolNoiseSample("TileCondToolNoiseSample") - , m_tileToolPulseShape("TileCondToolPulseShape") - , m_tileBadChanTool("TileBadChanTool") , m_beamInfo("TileBeamInfoProvider/TileBeamInfoProvider") , m_MuRcvBuildTool("TileRawChannelBuilderMF") , m_run2(true) @@ -93,15 +85,11 @@ TilePulseForTileMuonReceiver::TilePulseForTileMuonReceiver(std::string name, ISv declareProperty("TileInfoName" , m_infoName = "TileInfo"); declareProperty("IntegerDigits" , m_integerDigits = false, "Round digits (default=false)"); - declareProperty("TileBadChanTool" , m_tileBadChanTool); - declareProperty("TileCondToolPulseShape" , m_tileToolPulseShape); declareProperty("MaskBadChannels" , m_maskBadChannels = false, "Remove channels tagged bad (default=false)"); declareProperty("UseCoolPulseShapes" , m_useCoolPulseShapes = false, "Pulse shapes from database (default=false)"); - declareProperty("TileCondToolNoiseSample" , m_tileToolNoiseSample); declareProperty("UseCoolNoise" , m_tileNoise = false, "Noise from database (default=false)"); declareProperty("UseCoolPedestal" , m_tilePedestal = false, "Pedestal from database (default=false)"); declareProperty("RndmSvc" , m_rndmSvc, "Random Number Service used in TilePulseForTileMuonReceiver"); - declareProperty("TileCondToolEmscale" , m_tileToolEmscale, "Service to calibrate all channels"); declareProperty("TileRawChannelBuilderMF" , m_MuRcvBuildTool, "The tool by default is the Matched Filter"); } diff --git a/TileCalorimeter/TileSvc/TileByteStream/share/TileBeamElemContByteStreamCnv_test.ref b/TileCalorimeter/TileSvc/TileByteStream/share/TileBeamElemContByteStreamCnv_test.ref index 48eaa4c404095c75b6e9ed123ed0203d4887b271..1e50f73057cd0711cb5294363e483305bc1a97e4 100644 --- a/TileCalorimeter/TileSvc/TileByteStream/share/TileBeamElemContByteStreamCnv_test.ref +++ b/TileCalorimeter/TileSvc/TileByteStream/share/TileBeamElemContByteStreamCnv_test.ref @@ -1,14 +1,14 @@ -Thu Nov 8 04:24:29 CET 2018 +Thu Dec 6 04:54:13 CET 2018 Preloading tcmalloc_minimal.so Py:Athena INFO including file "AthenaCommon/Preparation.py" -Py:Athena INFO using release [AthenaWorkDir-22.0.1] [x86_64-slc6-gcc62-dbg] [atlas-work3/3a1173767ab] -- built on [2018-11-07T2213] +Py:Athena INFO using release [AthenaWorkDir-22.0.1] [x86_64-slc6-gcc62-dbg] [atlas-work3/fa0fd6d0989] -- built on [2018-12-06T0025] Py:Athena INFO including file "AthenaCommon/Atlas.UnixStandardJob.py" Py:Athena INFO executing ROOT6Setup Py:Athena INFO including file "AthenaCommon/Execution.py" Py:Athena INFO including file "TileByteStream/TileBeamElemContByteStreamCnv_test.py" [?1034hSetGeometryVersion.py obtained major release version 22 Py:Athena INFO including file "IdDictDetDescrCnv/IdDictDetDescrCnv_joboptions.py" -Py:ConfigurableDb INFO Read module info for 5557 configurables from 46 genConfDb files +Py:ConfigurableDb INFO Read module info for 5473 configurables from 60 genConfDb files Py:ConfigurableDb INFO No duplicates have been found: that's good ! EventInfoMgtInit: Got release version Athena-22.0.1 Py:IOVDbSvc.CondDB INFO Setting up conditions DB access to instance OFLP200 @@ -34,8 +34,8 @@ ApplicationMgr INFO Updating Gaudi::PluginService::SetDebug(level) to leve ApplicationMgr INFO Updating Gaudi::PluginService::SetDebug(level) to level= 'PluginDebugLevel':0 ApplicationMgr SUCCESS ==================================================================================================================================== - Welcome to ApplicationMgr (GaudiCoreSvc v30r4) - running on lxplus075.cern.ch on Thu Nov 8 04:25:01 2018 + Welcome to ApplicationMgr (GaudiCoreSvc v30r5) + running on lxplus071.cern.ch on Thu Dec 6 04:54:36 2018 ==================================================================================================================================== ApplicationMgr INFO Successfully loaded modules : AthenaServices ApplicationMgr INFO Application Manager Configured successfully @@ -52,8 +52,8 @@ PoolSvc INFO io_register[PoolSvc](xmlcatalog_file:PoolFileCatalog.x PoolSvc INFO Set connectionsvc retry/timeout/IDLE timeout to 'ConnectionRetrialPeriod':300/ 'ConnectionRetrialTimeOut':3600/ 'ConnectionTimeOut':5 seconds with connection cleanup disabled PoolSvc INFO Frontier compression level set to 5 DBReplicaSvc INFO Frontier server at (serverurl=http://atlasfrontier-local.cern.ch:8000/atlr)(serverurl=http://atlasfrontier-ai.cern.ch:8000/atlr)(serverurl=http://lcgft-atlas.gridpp.rl.ac.uk:3128/frontierATLAS)(serverurl=http://ccfrontier.in2p3.fr:23128/ccin2p3-AtlasFrontier)(proxyurl=http://ca-proxy.cern.ch:3128)(proxyurl=http://ca-proxy-meyrin.cern.ch:3128)(proxyurl=http://ca-proxy-wigner.cern.ch:3128)(proxyurl=http://atlasbpfrontier.cern.ch:3127)(proxyurl=http://atlasbpfrontier.fnal.gov:3127) will be considered for COOL data -DBReplicaSvc INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/dbreplica.config -DBReplicaSvc INFO Total of 10 servers found for host lxplus075.cern.ch [ATLF ATLAS_COOLPROD atlas_dd ATLAS_CONFIG INT8R INTR ATONR_COOL ATONR_CONF DEVDB11 ATLF ] +DBReplicaSvc INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/dbreplica.config +DBReplicaSvc INFO Total of 10 servers found for host lxplus071.cern.ch [ATLF ATLAS_COOLPROD atlas_dd ATLAS_CONFIG INT8R INTR ATONR_COOL ATONR_CONF DEVDB11 ATLF ] PoolSvc INFO Successfully setup replica sorting algorithm PoolSvc INFO Setting up APR FileCatalog and Streams PoolSvc WARNING Unable to locate catalog for prfile:poolcond/PoolCat_oflcond.xml check your ATLAS_POOLCOND_PATH and DATAPATH variables @@ -67,7 +67,7 @@ IOVDbSvc INFO Opened read transaction for POOL PersistencySvc IOVDbSvc INFO Only 5 POOL conditions files will be open at once IOVDbSvc INFO Cache alignment will be done in 3 slices IOVDbSvc INFO Global tag: OFLCOND-RUN12-SDR-35 set from joboptions -IOVDbSvc INFO Read from meta data only for folder /TagInfo +IOVDbFolder INFO Read from meta data only for folder /TagInfo IOVDbSvc INFO Initialised with 3 connections and 14 folders IOVDbSvc INFO Service IOVDbSvc initialised successfully ByteStreamAddre... INFO Initializing ByteStreamAddressProviderSvc - package version ByteStreamCnvSvcBase-00-00-00 @@ -85,7 +85,7 @@ ByteStreamAddre... INFO Topo Processor RoI = 0x81, 0x91 ByteStreamAddre... INFO -- Will fill Store with id = 0 IOVDbSvc INFO preLoadAddresses: Removing folder /TagInfo. It should only be in the file meta data and was not found. IOVDbSvc INFO Opening COOL connection for COOLOFL_LAR/OFLP200 -ClassIDSvc INFO getRegistryEntries: read 3114 CLIDRegistry entries for module ALL +ClassIDSvc INFO getRegistryEntries: read 3116 CLIDRegistry entries for module ALL IOVSvc INFO No IOVSvcTool associated with store "StoreGateSvc" IOVSvcTool INFO IOVRanges will be checked at every Event IOVDbSvc INFO Opening COOL connection for COOLOFL_TILE/OFLP200 @@ -193,7 +193,7 @@ EndcapDMConstru... INFO Start building EC electronics geometry multi-layered version of absorbers activated, mlabs == 1 ================================================ EndcapDMConstru... INFO Start building EC electronics geometry -GeoModelSvc INFO GeoModelSvc.LArDetectorToolNV SZ= 29096Kb Time = 1.57S +GeoModelSvc INFO GeoModelSvc.LArDetectorToolNV SZ= 28544Kb Time = 1.67S GeoModelSvc.Til... INFO Entering TileDetectorTool::create() TileDddbManager INFO m_tag = ATLAS-R2-2016-01-00-01 TileDddbManager INFO n_tiglob = 5 @@ -205,7 +205,7 @@ TileDddbManager INFO n_tileSwitches = 1 ClassIDSvc INFO getRegistryEntries: read 213 CLIDRegistry entries for module ALL CaloIDHelper_ID... INFO in createObj: creating a TileID helper object in the detector store AtlasDetectorID INFO initialize_from_dictionary - OK -TileNeighbour INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/TileNeighbour_reduced.txt +TileNeighbour INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/TileNeighbour_reduced.txt TileHWIDDetDesc... INFO in createObj: creating a TileHWID helper object in the detector store TileHWID INFO initialize_from_dictionary AtlasDetectorID INFO initialize_from_dictionary - OK @@ -217,9 +217,9 @@ CaloIDHelper_ID... INFO in createObj: creating a LArHEC_ID helper object in th AtlasDetectorID INFO initialize_from_dictionary - OK CaloIDHelper_ID... INFO in createObj: creating a LArFCAL_ID helper object in the detector store AtlasDetectorID INFO initialize_from_dictionary - OK -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCal2DNeighbors-April2011.txt -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCal3DNeighborsNext-April2011.txt -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCal3DNeighborsPrev-April2011.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCal2DNeighbors-April2011.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCal3DNeighborsNext-April2011.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCal3DNeighborsPrev-April2011.txt CaloIDHelper_ID... INFO in createObj: creating a LArMiniFCAL_ID helper object in the detector store AtlasDetectorID INFO initialize_from_dictionary - OK LArMiniFCAL_ID INFO initialize_from_dict - LArCalorimeter dictionary does NOT contain miniFCAL description. Unable to initialize LArMiniFCAL_ID. @@ -254,7 +254,7 @@ GeoModelSvc.Til... INFO Global positioning of barrel with rotation (0,0,0)) a GeoModelSvc.Til... INFO Global positioning of positive ext.barrel with rotation (0,0,0)) and translation (0,0,0) CLHEP::cm GeoModelSvc.Til... INFO Global positioning of negative ext.barrel with rotation (0,0,0)) and translation (0,0,1) CLHEP::cm TileDetDescrMan... INFO Entering create_elements() -GeoModelSvc INFO GeoModelSvc.TileDetectorTool SZ= 5200Kb Time = 1.67S +GeoModelSvc INFO GeoModelSvc.TileDetectorTool SZ= 5196Kb Time = 1.7S ClassIDSvc INFO getRegistryEntries: read 65 CLIDRegistry entries for module ALL TileInfoLoader INFO Initializing....TileInfoLoader TileInfoLoader INFO New ATLAS geometry detected: ATLAS-R2-2016-01-00-01 (010001) version 10001 @@ -276,11 +276,11 @@ TileInfoLoader INFO Sampling fraction for E2 cells 1/107 TileInfoLoader INFO Sampling fraction for E3 cells 1/97 TileInfoLoader INFO Sampling fraction for E4 cells 1/75 TileInfoLoader INFO Sampling fraction for E4' cells 1/75 -TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulsehi_physics.dat -TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulselo_physics.dat -TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulse_adder_tower_physics.dat -TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulse_adder_muonRcv_physics.dat -TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulse_adder_muon_physics.dat +TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulsehi_physics.dat +TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulselo_physics.dat +TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulse_adder_tower_physics.dat +TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulse_adder_muonRcv_physics.dat +TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulse_adder_muon_physics.dat CaloIDHelper_ID... INFO in createObj: creating a CaloLVL1_ID helper object in the detector store CaloLVL1_ID INFO initialize_from_dictionary AtlasDetectorID INFO initialize_from_dictionary - OK @@ -289,12 +289,12 @@ TileCablingSvc INFO Cabling for RUN2 (2014-2017) ATLAS geometry is set via TileCablingSvc INFO Setting Cabling type to 4 TileInfoLoader INFO Placed TileInfo object in the detector store. ToolSvc.TileBad... INFO Creating TileCondProxyCool(ToolSvc.TileBadChanLegacyTool.TileCondProxyCool_OnlBch) for folder: "/TILE/ONL01/STATUS/ADC" -IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileCondProxyCool<TileCalibDrawerBch>[0x8390b00]+7f2c8477064c bound to CondAttrListCollection[/TILE/ONL01/STATUS/ADC] +IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileCondProxyCool<TileCalibDrawerBch>[0x13f91600]+7f3d3ed2ba54 bound to CondAttrListCollection[/TILE/ONL01/STATUS/ADC] ToolSvc.TileBad... INFO Creating TileCondProxyCool(ToolSvc.TileBadChanLegacyTool.TileCondProxyCool_OflBch) for folder: "/TILE/OFL02/STATUS/ADC" -IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileCondProxyCool<TileCalibDrawerBch>[0x8394200]+7f2c8477064c bound to CondAttrListCollection[/TILE/OFL02/STATUS/ADC] +IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileCondProxyCool<TileCalibDrawerBch>[0x13f92c00]+7f3d3ed2ba54 bound to CondAttrListCollection[/TILE/OFL02/STATUS/ADC] ToolSvc.TileBad... INFO ProxyOnlBch and ProxyOflBch will be used for bad channel status -IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileBadChanLegacyTool[0x18d90000]+7f2c8451c7ce bound to /TILE/ONL01/STATUS/ADC -IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileBadChanLegacyTool[0x18d90000]+7f2c8451c7ce bound to /TILE/OFL02/STATUS/ADC +IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileBadChanLegacyTool[0x19535000]+7f3d3eb45c6e bound to /TILE/ONL01/STATUS/ADC +IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileBadChanLegacyTool[0x19535000]+7f3d3eb45c6e bound to /TILE/OFL02/STATUS/ADC AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00 ClassIDSvc INFO getRegistryEntries: read 265 CLIDRegistry entries for module ALL CondInputLoader INFO Initializing CondInputLoader... @@ -340,7 +340,7 @@ TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCond TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OnlEms) for folder: "/TILE/OFL02/CALIB/EMS" TileSampleNoise... INFO Creating TileCondProxyCool(TileSampleNoiseCondAlg.TileCondProxyCool_NoiseSample) for folder: "/TILE/OFL02/NOISE/SAMPLE" TileTimingCondA... INFO Creating TileCondProxyCool(TileTimingCondAlg.TileCondProxyCool_AdcOffset) for folder: "/TILE/OFL02/TIME/CHANNELOFFSET/PHY" -ClassIDSvc INFO getRegistryEntries: read 3798 CLIDRegistry entries for module ALL +ClassIDSvc INFO getRegistryEntries: read 3930 CLIDRegistry entries for module ALL PyComponentMgr INFO Initializing PyComponentMgr... Finalizer INFO Initializing Finalizer... HistogramPersis...WARNING Histograms saving not required. @@ -373,23 +373,21 @@ EventInfoByteSt... INFO IsCalibration : 0 EventInfoByteSt... INFO EventContext not valid AthenaEventLoopMgr INFO ===>>> start of run 204073 <<<=== IOVDbSvc INFO Opening COOL connection for COOLOFL_LAR/OFLP200 -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to LARAlign-IOVDEP-00 for folder /LAR/Align -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to LArCellPositionShift-ideal for folder /LAR/LArCellPositionShift +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to LARAlign-IOVDEP-00 for folder /LAR/Align +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to LArCellPositionShift-ideal for folder /LAR/LArCellPositionShift IOVDbSvc INFO Disconnecting from COOLOFL_LAR/OFLP200 IOVDbSvc INFO Opening COOL connection for COOLOFL_TILE/OFLP200 -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCes-SIM-06 for folder /TILE/OFL02/CALIB/CES -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCisFitLin-COM-00 for folder /TILE/OFL02/CALIB/CIS/FIT/LIN -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCisFitNln-COM-00 for folder /TILE/OFL02/CALIB/CIS/FIT/NLN -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibEms-COM-00 for folder /TILE/OFL02/CALIB/EMS -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasFiber-000-00 for folder /TILE/OFL02/CALIB/LAS/FIBER -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasLin-COM-00 for folder /TILE/OFL02/CALIB/LAS/LIN -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasNln-COM-00 for folder /TILE/OFL02/CALIB/LAS/NLN -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02NoiseSample-TwoGauss-19 for folder /TILE/OFL02/NOISE/SAMPLE -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02StatusAdc-IOVDEP-03 for folder /TILE/OFL02/STATUS/ADC -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02TimeChanneloffsetPhy-000-00 for folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCes-SIM-06 for folder /TILE/OFL02/CALIB/CES +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCisFitLin-COM-00 for folder /TILE/OFL02/CALIB/CIS/FIT/LIN +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCisFitNln-COM-00 for folder /TILE/OFL02/CALIB/CIS/FIT/NLN +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibEms-COM-00 for folder /TILE/OFL02/CALIB/EMS +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasFiber-000-00 for folder /TILE/OFL02/CALIB/LAS/FIBER +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasLin-COM-00 for folder /TILE/OFL02/CALIB/LAS/LIN +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasNln-COM-00 for folder /TILE/OFL02/CALIB/LAS/NLN +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02NoiseSample-TwoGauss-19 for folder /TILE/OFL02/NOISE/SAMPLE +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02StatusAdc-IOVDEP-03 for folder /TILE/OFL02/STATUS/ADC +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02TimeChanneloffsetPhy-000-00 for folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY IOVDbSvc INFO Disconnecting from COOLOFL_TILE/OFLP200 -DbSession INFO Open DbSession -Domain[ROOT_All] INFO > Access DbDomain READ [ROOT_All] Domain[ROOT_All] INFO -> Access DbDatabase READ [ROOT_All] 06C9EAE8-6F5B-E011-BAAA-003048F0E7AC Domain[ROOT_All] INFO /cvmfs/atlas-condb.cern.ch/repo/conditions/cond09/cond09_mc.000029.gen.COND/cond09_mc.000029.gen.COND._0002.pool.root RootDatabase.open INFO /cvmfs/atlas-condb.cern.ch/repo/conditions/cond09/cond09_mc.000029.gen.COND/cond09_mc.000029.gen.COND._0002.pool.root File version:52200 @@ -411,12 +409,12 @@ CaloIDHelper_ID... INFO in createObj: creating a LArHEC_SuperCell_ID helper ob AtlasDetectorID INFO initialize_from_dictionary - OK CaloIDHelper_ID... INFO in createObj: creating a LArFCAL_SuperCell_ID helper object in the detector store AtlasDetectorID INFO initialize_from_dictionary - OK -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells2DNeighborsNew-April2014.txt -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells3DNeighborsNextNew-April2014.txt -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells3DNeighborsPrevNew-April2014.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells2DNeighborsNew-April2014.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells3DNeighborsNextNew-April2014.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells3DNeighborsPrevNew-April2014.txt CaloIDHelper_ID... INFO in createObj: creating a Tile_SuperCell_ID helper object in the detector store AtlasDetectorID INFO initialize_from_dictionary - OK -TileNeighbour INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/TileSuperCellNeighbour.txt +TileNeighbour INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/TileSuperCellNeighbour.txt AtlasDetectorID INFO initialize_from_dictionary - OK CaloIdMgrDetDes... INFO Finished CaloIdMgrDetDes... INFO Initializing CaloIdMgr from values in CaloIdMgrDetDescrCnv @@ -446,11 +444,6 @@ TileBadChannels... INFO No drawer trips probabilities found in DB ClassIDSvc INFO getRegistryEntries: read 2380 CLIDRegistry entries for module ALL ToolSvc.TileROD... INFO TileL2Builder initialization completed AthenaEventLoopMgr INFO ===>>> done processing event #1129572, run #204073 1 events processed so far <<<=== -/cvmfs/atlas-co... INFO Database being retired... -Domain[ROOT_All] INFO -> Deaccess DbDatabase READ [ROOT_All] 06C9EAE8-6F5B-E011-BAAA-003048F0E7AC -/cvmfs/atlas-co... INFO Database being retired... -Domain[ROOT_All] INFO -> Deaccess DbDatabase READ [ROOT_All] 8667C6F2-1559-DE11-A611-000423D9A21A -Domain[ROOT_All] INFO > Deaccess DbDomain READ [ROOT_All] AthenaEventLoopMgr INFO ===>>> start processing event #1129665, run #204073 1 events processed so far <<<=== AthenaEventLoopMgr INFO ===>>> done processing event #1129665, run #204073 2 events processed so far <<<=== AthenaEventLoopMgr INFO ===>>> start processing event #1131212, run #204073 2 events processed so far <<<=== @@ -651,6 +644,10 @@ AthenaEventLoopMgr INFO ===>>> start processing event #1156351, run #204073 AthenaEventLoopMgr INFO ===>>> done processing event #1156351, run #204073 100 events processed so far <<<=== TileInfoLoader INFO Handling EndRun incident TileInfoLoader INFO Removed TileInfo object from detector store. +/cvmfs/atlas-co... INFO Database being retired... +Domain[ROOT_All] INFO -> Deaccess DbDatabase READ [ROOT_All] 06C9EAE8-6F5B-E011-BAAA-003048F0E7AC +/cvmfs/atlas-co... INFO Database being retired... +Domain[ROOT_All] INFO -> Deaccess DbDatabase READ [ROOT_All] 8667C6F2-1559-DE11-A611-000423D9A21A Domain[ROOT_All] INFO > Deaccess DbDomain READ [ROOT_All] ApplicationMgr INFO Application Manager Stopped successfully IncidentProcAlg1 INFO Finalize @@ -661,23 +658,23 @@ IncidentProcAlg2 INFO Finalize EventInfoByteSt... INFO finalize PyComponentMgr INFO Finalizing PyComponentMgr... IdDictDetDescrCnv INFO in finalize -IOVDbSvc INFO Folder /LAR/Align (PoolRef) db-read 1/1 objs/chan/bytes 1/1/170 (( 0.90 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/CES (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/103344 (( 0.74 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/CIS/FIT/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/80 (( 0.95 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/CIS/FIT/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/80 (( 2.85 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/EMS (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/92 (( 0.73 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/LAS/FIBER (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/940 (( 0.69 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/LAS/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/72 (( 1.53 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/LAS/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/76 (( 0.81 ))s -IOVDbSvc INFO Folder /TILE/OFL02/NOISE/SAMPLE (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/641504 (( 1.09 ))s -IOVDbSvc INFO Folder /TILE/OFL02/STATUS/ADC (AttrListColl) db-read 1/2 objs/chan/bytes 277/277/93060 (( 0.07 ))s -IOVDbSvc INFO Folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/96 (( 0.06 ))s -IOVDbSvc INFO Folder /TILE/ONL01/STATUS/ADC (AttrListColl) db-read 1/2 objs/chan/bytes 277/277/76 (( 0.02 ))s -IOVDbSvc INFO Folder /LAR/LArCellPositionShift (PoolRef) db-read 1/1 objs/chan/bytes 1/1/195 (( 0.43 ))s -IOVDbSvc INFO Total payload read from COOL: 839785 bytes in (( 10.87 ))s +IOVDbFolder INFO Folder /LAR/Align (PoolRef) db-read 1/1 objs/chan/bytes 1/1/170 (( 0.21 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CES (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/103344 (( 0.25 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/80 (( 0.08 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/80 (( 0.07 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/EMS (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/92 (( 0.07 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/FIBER (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/940 (( 0.08 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/72 (( 0.05 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/76 (( 0.05 ))s +IOVDbFolder INFO Folder /TILE/OFL02/NOISE/SAMPLE (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/641504 (( 0.26 ))s +IOVDbFolder INFO Folder /TILE/OFL02/STATUS/ADC (AttrListColl) db-read 1/2 objs/chan/bytes 277/277/93060 (( 1.19 ))s +IOVDbFolder INFO Folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/96 (( 7.24 ))s +IOVDbFolder INFO Folder /TILE/ONL01/STATUS/ADC (AttrListColl) db-read 1/2 objs/chan/bytes 277/277/76 (( 0.13 ))s +IOVDbFolder INFO Folder /LAR/LArCellPositionShift (PoolRef) db-read 1/1 objs/chan/bytes 1/1/195 (( 0.06 ))s +IOVDbSvc INFO bytes in (( 9.74 ))s IOVDbSvc INFO Connection sqlite://;schema=mycool.db;dbname=OFLP200 : nConnect: 0 nFolders: 0 ReadTime: (( 0.00 ))s -IOVDbSvc INFO Connection COOLOFL_LAR/OFLP200 : nConnect: 2 nFolders: 2 ReadTime: (( 1.33 ))s -IOVDbSvc INFO Connection COOLOFL_TILE/OFLP200 : nConnect: 2 nFolders: 11 ReadTime: (( 9.54 ))s +IOVDbSvc INFO Connection COOLOFL_LAR/OFLP200 : nConnect: 2 nFolders: 2 ReadTime: (( 0.26 ))s +IOVDbSvc INFO Connection COOLOFL_TILE/OFLP200 : nConnect: 2 nFolders: 11 ReadTime: (( 9.47 ))s TileInfoLoader INFO TileInfoLoader::finalize() AthDictLoaderSvc INFO in finalize... ToolSvc INFO Removing all tools created by ToolSvc @@ -686,9 +683,9 @@ ToolSvc.TileROD... INFO Finalizing *****Chrono***** INFO **************************************************************************************************** *****Chrono***** INFO The Final CPU consumption ( Chrono ) Table (ordered) *****Chrono***** INFO **************************************************************************************************** -cObjR_ALL INFO Time User : Tot= 0.78 [s] Ave/Min/Max= 0.39(+- 0.37)/ 0.02/ 0.76 [s] #= 2 -cObj_ALL INFO Time User : Tot= 1.04 [s] Ave/Min/Max=0.0693(+-0.216)/ 0/ 0.86 [s] #= 15 -ChronoStatSvc INFO Time User : Tot= 29.4 [s] #= 1 +cObjR_ALL INFO Time User : Tot= 0.83 [s] Ave/Min/Max=0.415(+-0.395)/ 0.02/ 0.81 [s] #= 2 +cObj_ALL INFO Time User : Tot= 1.1 [s] Ave/Min/Max=0.0733(+-0.231)/ 0/ 0.92 [s] #= 15 +ChronoStatSvc INFO Time User : Tot= 29.6 [s] #= 1 *****Chrono***** INFO **************************************************************************************************** ChronoStatSvc.f... INFO Service finalized successfully ApplicationMgr INFO Application Manager Finalized successfully diff --git a/TileCalorimeter/TileSvc/TileByteStream/share/TileDigitsContByteStreamCnv_test.ref b/TileCalorimeter/TileSvc/TileByteStream/share/TileDigitsContByteStreamCnv_test.ref index f20a7363fd8d60c6e625a4b98b800467722b7964..c3bc319489e997f0207d60dd80222af4a2004356 100644 --- a/TileCalorimeter/TileSvc/TileByteStream/share/TileDigitsContByteStreamCnv_test.ref +++ b/TileCalorimeter/TileSvc/TileByteStream/share/TileDigitsContByteStreamCnv_test.ref @@ -1,14 +1,14 @@ -Thu Nov 8 05:49:01 CET 2018 +Thu Dec 6 04:44:17 CET 2018 Preloading tcmalloc_minimal.so Py:Athena INFO including file "AthenaCommon/Preparation.py" -Py:Athena INFO using release [AthenaWorkDir-22.0.1] [x86_64-slc6-gcc62-dbg] [atlas-work3/93f05f9c910] -- built on [2018-11-08T0523] +Py:Athena INFO using release [AthenaWorkDir-22.0.1] [x86_64-slc6-gcc62-dbg] [atlas-work3/fa0fd6d0989] -- built on [2018-12-06T0025] Py:Athena INFO including file "AthenaCommon/Atlas.UnixStandardJob.py" Py:Athena INFO executing ROOT6Setup Py:Athena INFO including file "AthenaCommon/Execution.py" Py:Athena INFO including file "TileByteStream/TileDigitsContByteStreamCnv_test.py" [?1034hSetGeometryVersion.py obtained major release version 22 Py:Athena INFO including file "IdDictDetDescrCnv/IdDictDetDescrCnv_joboptions.py" -Py:ConfigurableDb INFO Read module info for 5557 configurables from 46 genConfDb files +Py:ConfigurableDb INFO Read module info for 5473 configurables from 60 genConfDb files Py:ConfigurableDb INFO No duplicates have been found: that's good ! EventInfoMgtInit: Got release version Athena-22.0.1 Py:IOVDbSvc.CondDB INFO Setting up conditions DB access to instance OFLP200 @@ -34,8 +34,8 @@ ApplicationMgr INFO Updating Gaudi::PluginService::SetDebug(level) to leve ApplicationMgr INFO Updating Gaudi::PluginService::SetDebug(level) to level= 'PluginDebugLevel':0 ApplicationMgr SUCCESS ==================================================================================================================================== - Welcome to ApplicationMgr (GaudiCoreSvc v30r4) - running on lxplus075.cern.ch on Thu Nov 8 05:49:24 2018 + Welcome to ApplicationMgr (GaudiCoreSvc v30r5) + running on lxplus071.cern.ch on Thu Dec 6 04:44:41 2018 ==================================================================================================================================== ApplicationMgr INFO Successfully loaded modules : AthenaServices ApplicationMgr INFO Application Manager Configured successfully @@ -52,8 +52,8 @@ PoolSvc INFO io_register[PoolSvc](xmlcatalog_file:PoolFileCatalog.x PoolSvc INFO Set connectionsvc retry/timeout/IDLE timeout to 'ConnectionRetrialPeriod':300/ 'ConnectionRetrialTimeOut':3600/ 'ConnectionTimeOut':5 seconds with connection cleanup disabled PoolSvc INFO Frontier compression level set to 5 DBReplicaSvc INFO Frontier server at (serverurl=http://atlasfrontier-local.cern.ch:8000/atlr)(serverurl=http://atlasfrontier-ai.cern.ch:8000/atlr)(serverurl=http://lcgft-atlas.gridpp.rl.ac.uk:3128/frontierATLAS)(serverurl=http://ccfrontier.in2p3.fr:23128/ccin2p3-AtlasFrontier)(proxyurl=http://ca-proxy.cern.ch:3128)(proxyurl=http://ca-proxy-meyrin.cern.ch:3128)(proxyurl=http://ca-proxy-wigner.cern.ch:3128)(proxyurl=http://atlasbpfrontier.cern.ch:3127)(proxyurl=http://atlasbpfrontier.fnal.gov:3127) will be considered for COOL data -DBReplicaSvc INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/dbreplica.config -DBReplicaSvc INFO Total of 10 servers found for host lxplus075.cern.ch [ATLF ATLAS_COOLPROD atlas_dd ATLAS_CONFIG INT8R INTR ATONR_COOL ATONR_CONF DEVDB11 ATLF ] +DBReplicaSvc INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/dbreplica.config +DBReplicaSvc INFO Total of 10 servers found for host lxplus071.cern.ch [ATLF ATLAS_COOLPROD atlas_dd ATLAS_CONFIG INT8R INTR ATONR_COOL ATONR_CONF DEVDB11 ATLF ] PoolSvc INFO Successfully setup replica sorting algorithm PoolSvc INFO Setting up APR FileCatalog and Streams PoolSvc WARNING Unable to locate catalog for prfile:poolcond/PoolCat_oflcond.xml check your ATLAS_POOLCOND_PATH and DATAPATH variables @@ -67,7 +67,7 @@ IOVDbSvc INFO Opened read transaction for POOL PersistencySvc IOVDbSvc INFO Only 5 POOL conditions files will be open at once IOVDbSvc INFO Cache alignment will be done in 3 slices IOVDbSvc INFO Global tag: OFLCOND-RUN12-SDR-35 set from joboptions -IOVDbSvc INFO Read from meta data only for folder /TagInfo +IOVDbFolder INFO Read from meta data only for folder /TagInfo IOVDbSvc INFO Initialised with 3 connections and 14 folders IOVDbSvc INFO Service IOVDbSvc initialised successfully ByteStreamAddre... INFO Initializing ByteStreamAddressProviderSvc - package version ByteStreamCnvSvcBase-00-00-00 @@ -85,7 +85,7 @@ ByteStreamAddre... INFO Topo Processor RoI = 0x81, 0x91 ByteStreamAddre... INFO -- Will fill Store with id = 0 IOVDbSvc INFO preLoadAddresses: Removing folder /TagInfo. It should only be in the file meta data and was not found. IOVDbSvc INFO Opening COOL connection for COOLOFL_LAR/OFLP200 -ClassIDSvc INFO getRegistryEntries: read 3114 CLIDRegistry entries for module ALL +ClassIDSvc INFO getRegistryEntries: read 3116 CLIDRegistry entries for module ALL IOVSvc INFO No IOVSvcTool associated with store "StoreGateSvc" IOVSvcTool INFO IOVRanges will be checked at every Event IOVDbSvc INFO Opening COOL connection for COOLOFL_TILE/OFLP200 @@ -193,7 +193,7 @@ EndcapDMConstru... INFO Start building EC electronics geometry multi-layered version of absorbers activated, mlabs == 1 ================================================ EndcapDMConstru... INFO Start building EC electronics geometry -GeoModelSvc INFO GeoModelSvc.LArDetectorToolNV SZ= 29096Kb Time = 2.19S +GeoModelSvc INFO GeoModelSvc.LArDetectorToolNV SZ= 28544Kb Time = 1.61S GeoModelSvc.Til... INFO Entering TileDetectorTool::create() TileDddbManager INFO m_tag = ATLAS-R2-2016-01-00-01 TileDddbManager INFO n_tiglob = 5 @@ -205,7 +205,7 @@ TileDddbManager INFO n_tileSwitches = 1 ClassIDSvc INFO getRegistryEntries: read 213 CLIDRegistry entries for module ALL CaloIDHelper_ID... INFO in createObj: creating a TileID helper object in the detector store AtlasDetectorID INFO initialize_from_dictionary - OK -TileNeighbour INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/TileNeighbour_reduced.txt +TileNeighbour INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/TileNeighbour_reduced.txt TileHWIDDetDesc... INFO in createObj: creating a TileHWID helper object in the detector store TileHWID INFO initialize_from_dictionary AtlasDetectorID INFO initialize_from_dictionary - OK @@ -217,9 +217,9 @@ CaloIDHelper_ID... INFO in createObj: creating a LArHEC_ID helper object in th AtlasDetectorID INFO initialize_from_dictionary - OK CaloIDHelper_ID... INFO in createObj: creating a LArFCAL_ID helper object in the detector store AtlasDetectorID INFO initialize_from_dictionary - OK -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCal2DNeighbors-April2011.txt -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCal3DNeighborsNext-April2011.txt -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCal3DNeighborsPrev-April2011.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCal2DNeighbors-April2011.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCal3DNeighborsNext-April2011.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCal3DNeighborsPrev-April2011.txt CaloIDHelper_ID... INFO in createObj: creating a LArMiniFCAL_ID helper object in the detector store AtlasDetectorID INFO initialize_from_dictionary - OK LArMiniFCAL_ID INFO initialize_from_dict - LArCalorimeter dictionary does NOT contain miniFCAL description. Unable to initialize LArMiniFCAL_ID. @@ -254,7 +254,7 @@ GeoModelSvc.Til... INFO Global positioning of barrel with rotation (0,0,0)) a GeoModelSvc.Til... INFO Global positioning of positive ext.barrel with rotation (0,0,0)) and translation (0,0,0) CLHEP::cm GeoModelSvc.Til... INFO Global positioning of negative ext.barrel with rotation (0,0,0)) and translation (0,0,1) CLHEP::cm TileDetDescrMan... INFO Entering create_elements() -GeoModelSvc INFO GeoModelSvc.TileDetectorTool SZ= 5200Kb Time = 1.73S +GeoModelSvc INFO GeoModelSvc.TileDetectorTool SZ= 5196Kb Time = 1.71S ClassIDSvc INFO getRegistryEntries: read 65 CLIDRegistry entries for module ALL TileInfoLoader INFO Initializing....TileInfoLoader TileInfoLoader INFO New ATLAS geometry detected: ATLAS-R2-2016-01-00-01 (010001) version 10001 @@ -276,11 +276,11 @@ TileInfoLoader INFO Sampling fraction for E2 cells 1/107 TileInfoLoader INFO Sampling fraction for E3 cells 1/97 TileInfoLoader INFO Sampling fraction for E4 cells 1/75 TileInfoLoader INFO Sampling fraction for E4' cells 1/75 -TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulsehi_physics.dat -TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulselo_physics.dat -TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulse_adder_tower_physics.dat -TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulse_adder_muonRcv_physics.dat -TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulse_adder_muon_physics.dat +TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulsehi_physics.dat +TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulselo_physics.dat +TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulse_adder_tower_physics.dat +TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulse_adder_muonRcv_physics.dat +TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulse_adder_muon_physics.dat CaloIDHelper_ID... INFO in createObj: creating a CaloLVL1_ID helper object in the detector store CaloLVL1_ID INFO initialize_from_dictionary AtlasDetectorID INFO initialize_from_dictionary - OK @@ -289,12 +289,12 @@ TileCablingSvc INFO Cabling for RUN2 (2014-2017) ATLAS geometry is set via TileCablingSvc INFO Setting Cabling type to 4 TileInfoLoader INFO Placed TileInfo object in the detector store. ToolSvc.TileBad... INFO Creating TileCondProxyCool(ToolSvc.TileBadChanLegacyTool.TileCondProxyCool_OnlBch) for folder: "/TILE/ONL01/STATUS/ADC" -IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileCondProxyCool<TileCalibDrawerBch>[0x85deb00]+7f4cabe1764c bound to CondAttrListCollection[/TILE/ONL01/STATUS/ADC] +IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileCondProxyCool<TileCalibDrawerBch>[0xbcb5600]+7fdfa6f85a54 bound to CondAttrListCollection[/TILE/ONL01/STATUS/ADC] ToolSvc.TileBad... INFO Creating TileCondProxyCool(ToolSvc.TileBadChanLegacyTool.TileCondProxyCool_OflBch) for folder: "/TILE/OFL02/STATUS/ADC" -IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileCondProxyCool<TileCalibDrawerBch>[0x85e2200]+7f4cabe1764c bound to CondAttrListCollection[/TILE/OFL02/STATUS/ADC] +IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileCondProxyCool<TileCalibDrawerBch>[0xbcb6c00]+7fdfa6f85a54 bound to CondAttrListCollection[/TILE/OFL02/STATUS/ADC] ToolSvc.TileBad... INFO ProxyOnlBch and ProxyOflBch will be used for bad channel status -IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileBadChanLegacyTool[0x18fe2000]+7f4cabbc37ce bound to /TILE/ONL01/STATUS/ADC -IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileBadChanLegacyTool[0x18fe2000]+7f4cabbc37ce bound to /TILE/OFL02/STATUS/ADC +IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileBadChanLegacyTool[0x195fb000]+7fdfa6d9fc6e bound to /TILE/ONL01/STATUS/ADC +IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileBadChanLegacyTool[0x195fb000]+7fdfa6d9fc6e bound to /TILE/OFL02/STATUS/ADC AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00 ClassIDSvc INFO getRegistryEntries: read 265 CLIDRegistry entries for module ALL CondInputLoader INFO Initializing CondInputLoader... @@ -340,7 +340,7 @@ TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCond TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OnlEms) for folder: "/TILE/OFL02/CALIB/EMS" TileSampleNoise... INFO Creating TileCondProxyCool(TileSampleNoiseCondAlg.TileCondProxyCool_NoiseSample) for folder: "/TILE/OFL02/NOISE/SAMPLE" TileTimingCondA... INFO Creating TileCondProxyCool(TileTimingCondAlg.TileCondProxyCool_AdcOffset) for folder: "/TILE/OFL02/TIME/CHANNELOFFSET/PHY" -ClassIDSvc INFO getRegistryEntries: read 3798 CLIDRegistry entries for module ALL +ClassIDSvc INFO getRegistryEntries: read 3930 CLIDRegistry entries for module ALL PyComponentMgr INFO Initializing PyComponentMgr... Finalizer INFO Initializing Finalizer... HistogramPersis...WARNING Histograms saving not required. @@ -373,23 +373,21 @@ EventInfoByteSt... INFO IsCalibration : 0 EventInfoByteSt... INFO EventContext not valid AthenaEventLoopMgr INFO ===>>> start of run 204073 <<<=== IOVDbSvc INFO Opening COOL connection for COOLOFL_LAR/OFLP200 -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to LARAlign-IOVDEP-00 for folder /LAR/Align -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to LArCellPositionShift-ideal for folder /LAR/LArCellPositionShift +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to LARAlign-IOVDEP-00 for folder /LAR/Align +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to LArCellPositionShift-ideal for folder /LAR/LArCellPositionShift IOVDbSvc INFO Disconnecting from COOLOFL_LAR/OFLP200 IOVDbSvc INFO Opening COOL connection for COOLOFL_TILE/OFLP200 -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCes-SIM-06 for folder /TILE/OFL02/CALIB/CES -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCisFitLin-COM-00 for folder /TILE/OFL02/CALIB/CIS/FIT/LIN -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCisFitNln-COM-00 for folder /TILE/OFL02/CALIB/CIS/FIT/NLN -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibEms-COM-00 for folder /TILE/OFL02/CALIB/EMS -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasFiber-000-00 for folder /TILE/OFL02/CALIB/LAS/FIBER -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasLin-COM-00 for folder /TILE/OFL02/CALIB/LAS/LIN -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasNln-COM-00 for folder /TILE/OFL02/CALIB/LAS/NLN -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02NoiseSample-TwoGauss-19 for folder /TILE/OFL02/NOISE/SAMPLE -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02StatusAdc-IOVDEP-03 for folder /TILE/OFL02/STATUS/ADC -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02TimeChanneloffsetPhy-000-00 for folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCes-SIM-06 for folder /TILE/OFL02/CALIB/CES +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCisFitLin-COM-00 for folder /TILE/OFL02/CALIB/CIS/FIT/LIN +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCisFitNln-COM-00 for folder /TILE/OFL02/CALIB/CIS/FIT/NLN +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibEms-COM-00 for folder /TILE/OFL02/CALIB/EMS +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasFiber-000-00 for folder /TILE/OFL02/CALIB/LAS/FIBER +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasLin-COM-00 for folder /TILE/OFL02/CALIB/LAS/LIN +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasNln-COM-00 for folder /TILE/OFL02/CALIB/LAS/NLN +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02NoiseSample-TwoGauss-19 for folder /TILE/OFL02/NOISE/SAMPLE +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02StatusAdc-IOVDEP-03 for folder /TILE/OFL02/STATUS/ADC +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02TimeChanneloffsetPhy-000-00 for folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY IOVDbSvc INFO Disconnecting from COOLOFL_TILE/OFLP200 -DbSession INFO Open DbSession -Domain[ROOT_All] INFO > Access DbDomain READ [ROOT_All] Domain[ROOT_All] INFO -> Access DbDatabase READ [ROOT_All] 06C9EAE8-6F5B-E011-BAAA-003048F0E7AC Domain[ROOT_All] INFO /cvmfs/atlas-condb.cern.ch/repo/conditions/cond09/cond09_mc.000029.gen.COND/cond09_mc.000029.gen.COND._0002.pool.root RootDatabase.open INFO /cvmfs/atlas-condb.cern.ch/repo/conditions/cond09/cond09_mc.000029.gen.COND/cond09_mc.000029.gen.COND._0002.pool.root File version:52200 @@ -411,12 +409,12 @@ CaloIDHelper_ID... INFO in createObj: creating a LArHEC_SuperCell_ID helper ob AtlasDetectorID INFO initialize_from_dictionary - OK CaloIDHelper_ID... INFO in createObj: creating a LArFCAL_SuperCell_ID helper object in the detector store AtlasDetectorID INFO initialize_from_dictionary - OK -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells2DNeighborsNew-April2014.txt -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells3DNeighborsNextNew-April2014.txt -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells3DNeighborsPrevNew-April2014.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells2DNeighborsNew-April2014.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells3DNeighborsNextNew-April2014.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells3DNeighborsPrevNew-April2014.txt CaloIDHelper_ID... INFO in createObj: creating a Tile_SuperCell_ID helper object in the detector store AtlasDetectorID INFO initialize_from_dictionary - OK -TileNeighbour INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/TileSuperCellNeighbour.txt +TileNeighbour INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/TileSuperCellNeighbour.txt AtlasDetectorID INFO initialize_from_dictionary - OK CaloIdMgrDetDes... INFO Finished CaloIdMgrDetDes... INFO Initializing CaloIdMgr from values in CaloIdMgrDetDescrCnv @@ -447,11 +445,6 @@ ClassIDSvc INFO getRegistryEntries: read 2380 CLIDRegistry entries fo ToolSvc.TileROD... INFO TileL2Builder initialization completed ToolSvc.TileDig... INFO Initializing TileDigitsContByteStreamTool AthenaEventLoopMgr INFO ===>>> done processing event #1129572, run #204073 1 events processed so far <<<=== -/cvmfs/atlas-co... INFO Database being retired... -Domain[ROOT_All] INFO -> Deaccess DbDatabase READ [ROOT_All] 06C9EAE8-6F5B-E011-BAAA-003048F0E7AC -/cvmfs/atlas-co... INFO Database being retired... -Domain[ROOT_All] INFO -> Deaccess DbDatabase READ [ROOT_All] 8667C6F2-1559-DE11-A611-000423D9A21A -Domain[ROOT_All] INFO > Deaccess DbDomain READ [ROOT_All] AthenaEventLoopMgr INFO ===>>> start processing event #1129665, run #204073 1 events processed so far <<<=== AthenaEventLoopMgr INFO ===>>> done processing event #1129665, run #204073 2 events processed so far <<<=== AthenaEventLoopMgr INFO ===>>> start processing event #1131212, run #204073 2 events processed so far <<<=== @@ -652,6 +645,10 @@ AthenaEventLoopMgr INFO ===>>> start processing event #1156351, run #204073 AthenaEventLoopMgr INFO ===>>> done processing event #1156351, run #204073 100 events processed so far <<<=== TileInfoLoader INFO Handling EndRun incident TileInfoLoader INFO Removed TileInfo object from detector store. +/cvmfs/atlas-co... INFO Database being retired... +Domain[ROOT_All] INFO -> Deaccess DbDatabase READ [ROOT_All] 8667C6F2-1559-DE11-A611-000423D9A21A +/cvmfs/atlas-co... INFO Database being retired... +Domain[ROOT_All] INFO -> Deaccess DbDatabase READ [ROOT_All] 06C9EAE8-6F5B-E011-BAAA-003048F0E7AC Domain[ROOT_All] INFO > Deaccess DbDomain READ [ROOT_All] ApplicationMgr INFO Application Manager Stopped successfully IncidentProcAlg1 INFO Finalize @@ -662,23 +659,23 @@ IncidentProcAlg2 INFO Finalize EventInfoByteSt... INFO finalize PyComponentMgr INFO Finalizing PyComponentMgr... IdDictDetDescrCnv INFO in finalize -IOVDbSvc INFO Folder /LAR/Align (PoolRef) db-read 1/1 objs/chan/bytes 1/1/170 (( 0.33 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/CES (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/103344 (( 0.44 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/CIS/FIT/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/80 (( 0.05 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/CIS/FIT/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/80 (( 0.05 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/EMS (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/92 (( 0.04 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/LAS/FIBER (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/940 (( 0.04 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/LAS/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/72 (( 0.04 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/LAS/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/76 (( 0.05 ))s -IOVDbSvc INFO Folder /TILE/OFL02/NOISE/SAMPLE (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/641504 (( 1.19 ))s -IOVDbSvc INFO Folder /TILE/OFL02/STATUS/ADC (AttrListColl) db-read 1/2 objs/chan/bytes 277/277/93060 (( 1.78 ))s -IOVDbSvc INFO Folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/96 (( 2.54 ))s -IOVDbSvc INFO Folder /TILE/ONL01/STATUS/ADC (AttrListColl) db-read 1/2 objs/chan/bytes 277/277/76 (( 0.07 ))s -IOVDbSvc INFO Folder /LAR/LArCellPositionShift (PoolRef) db-read 1/1 objs/chan/bytes 1/1/195 (( 0.03 ))s -IOVDbSvc INFO Total payload read from COOL: 839785 bytes in (( 6.67 ))s +IOVDbFolder INFO Folder /LAR/Align (PoolRef) db-read 1/1 objs/chan/bytes 1/1/170 (( 0.11 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CES (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/103344 (( 0.10 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/80 (( 0.07 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/80 (( 0.08 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/EMS (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/92 (( 0.09 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/FIBER (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/940 (( 0.09 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/72 (( 0.06 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/76 (( 0.08 ))s +IOVDbFolder INFO Folder /TILE/OFL02/NOISE/SAMPLE (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/641504 (( 0.16 ))s +IOVDbFolder INFO Folder /TILE/OFL02/STATUS/ADC (AttrListColl) db-read 1/2 objs/chan/bytes 277/277/93060 (( 2.31 ))s +IOVDbFolder INFO Folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/96 (( 0.61 ))s +IOVDbFolder INFO Folder /TILE/ONL01/STATUS/ADC (AttrListColl) db-read 1/2 objs/chan/bytes 277/277/76 (( 0.06 ))s +IOVDbFolder INFO Folder /LAR/LArCellPositionShift (PoolRef) db-read 1/1 objs/chan/bytes 1/1/195 (( 0.04 ))s +IOVDbSvc INFO bytes in (( 3.87 ))s IOVDbSvc INFO Connection sqlite://;schema=mycool.db;dbname=OFLP200 : nConnect: 0 nFolders: 0 ReadTime: (( 0.00 ))s -IOVDbSvc INFO Connection COOLOFL_LAR/OFLP200 : nConnect: 2 nFolders: 2 ReadTime: (( 0.37 ))s -IOVDbSvc INFO Connection COOLOFL_TILE/OFLP200 : nConnect: 2 nFolders: 11 ReadTime: (( 6.30 ))s +IOVDbSvc INFO Connection COOLOFL_LAR/OFLP200 : nConnect: 2 nFolders: 2 ReadTime: (( 0.15 ))s +IOVDbSvc INFO Connection COOLOFL_TILE/OFLP200 : nConnect: 2 nFolders: 11 ReadTime: (( 3.72 ))s TileInfoLoader INFO TileInfoLoader::finalize() AthDictLoaderSvc INFO in finalize... ToolSvc INFO Removing all tools created by ToolSvc @@ -688,9 +685,9 @@ ToolSvc.TileROD... INFO Finalizing *****Chrono***** INFO **************************************************************************************************** *****Chrono***** INFO The Final CPU consumption ( Chrono ) Table (ordered) *****Chrono***** INFO **************************************************************************************************** -cObjR_ALL INFO Time User : Tot= 0.97 [s] Ave/Min/Max=0.485(+-0.465)/ 0.02/ 0.95 [s] #= 2 -cObj_ALL INFO Time User : Tot= 1.24 [s] Ave/Min/Max=0.0827(+-0.265)/ 0/ 1.06 [s] #= 15 -ChronoStatSvc INFO Time User : Tot= 32.8 [s] #= 1 +cObjR_ALL INFO Time User : Tot= 1.63 [s] Ave/Min/Max=0.815(+-0.795)/ 0.02/ 1.61 [s] #= 2 +cObj_ALL INFO Time User : Tot= 1.9 [s] Ave/Min/Max=0.127(+-0.428)/ 0/ 1.72 [s] #= 15 +ChronoStatSvc INFO Time User : Tot= 34.4 [s] #= 1 *****Chrono***** INFO **************************************************************************************************** ChronoStatSvc.f... INFO Service finalized successfully ApplicationMgr INFO Application Manager Finalized successfully diff --git a/TileCalorimeter/TileSvc/TileByteStream/share/TileL2ContByteStreamCnv_test.ref b/TileCalorimeter/TileSvc/TileByteStream/share/TileL2ContByteStreamCnv_test.ref index 2de6316fcf558f66e44a08ed1295259ab3e3cace..28fab157fee6e4d86b966a94ccb396361c4e57fd 100644 --- a/TileCalorimeter/TileSvc/TileByteStream/share/TileL2ContByteStreamCnv_test.ref +++ b/TileCalorimeter/TileSvc/TileByteStream/share/TileL2ContByteStreamCnv_test.ref @@ -1,14 +1,14 @@ -Thu Nov 8 05:38:48 CET 2018 +Thu Dec 6 04:49:42 CET 2018 Preloading tcmalloc_minimal.so Py:Athena INFO including file "AthenaCommon/Preparation.py" -Py:Athena INFO using release [AthenaWorkDir-22.0.1] [x86_64-slc6-gcc62-dbg] [atlas-work3/93f05f9c910] -- built on [2018-11-08T0523] +Py:Athena INFO using release [AthenaWorkDir-22.0.1] [x86_64-slc6-gcc62-dbg] [atlas-work3/fa0fd6d0989] -- built on [2018-12-06T0025] Py:Athena INFO including file "AthenaCommon/Atlas.UnixStandardJob.py" Py:Athena INFO executing ROOT6Setup Py:Athena INFO including file "AthenaCommon/Execution.py" Py:Athena INFO including file "TileByteStream/TileL2ContByteStreamCnv_test.py" [?1034hSetGeometryVersion.py obtained major release version 22 Py:Athena INFO including file "IdDictDetDescrCnv/IdDictDetDescrCnv_joboptions.py" -Py:ConfigurableDb INFO Read module info for 5557 configurables from 46 genConfDb files +Py:ConfigurableDb INFO Read module info for 5473 configurables from 60 genConfDb files Py:ConfigurableDb INFO No duplicates have been found: that's good ! EventInfoMgtInit: Got release version Athena-22.0.1 Py:IOVDbSvc.CondDB INFO Setting up conditions DB access to instance OFLP200 @@ -34,8 +34,8 @@ ApplicationMgr INFO Updating Gaudi::PluginService::SetDebug(level) to leve ApplicationMgr INFO Updating Gaudi::PluginService::SetDebug(level) to level= 'PluginDebugLevel':0 ApplicationMgr SUCCESS ==================================================================================================================================== - Welcome to ApplicationMgr (GaudiCoreSvc v30r4) - running on lxplus075.cern.ch on Thu Nov 8 05:39:22 2018 + Welcome to ApplicationMgr (GaudiCoreSvc v30r5) + running on lxplus071.cern.ch on Thu Dec 6 04:50:04 2018 ==================================================================================================================================== ApplicationMgr INFO Successfully loaded modules : AthenaServices ApplicationMgr INFO Application Manager Configured successfully @@ -52,8 +52,8 @@ PoolSvc INFO io_register[PoolSvc](xmlcatalog_file:PoolFileCatalog.x PoolSvc INFO Set connectionsvc retry/timeout/IDLE timeout to 'ConnectionRetrialPeriod':300/ 'ConnectionRetrialTimeOut':3600/ 'ConnectionTimeOut':5 seconds with connection cleanup disabled PoolSvc INFO Frontier compression level set to 5 DBReplicaSvc INFO Frontier server at (serverurl=http://atlasfrontier-local.cern.ch:8000/atlr)(serverurl=http://atlasfrontier-ai.cern.ch:8000/atlr)(serverurl=http://lcgft-atlas.gridpp.rl.ac.uk:3128/frontierATLAS)(serverurl=http://ccfrontier.in2p3.fr:23128/ccin2p3-AtlasFrontier)(proxyurl=http://ca-proxy.cern.ch:3128)(proxyurl=http://ca-proxy-meyrin.cern.ch:3128)(proxyurl=http://ca-proxy-wigner.cern.ch:3128)(proxyurl=http://atlasbpfrontier.cern.ch:3127)(proxyurl=http://atlasbpfrontier.fnal.gov:3127) will be considered for COOL data -DBReplicaSvc INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/dbreplica.config -DBReplicaSvc INFO Total of 10 servers found for host lxplus075.cern.ch [ATLF ATLAS_COOLPROD atlas_dd ATLAS_CONFIG INT8R INTR ATONR_COOL ATONR_CONF DEVDB11 ATLF ] +DBReplicaSvc INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/dbreplica.config +DBReplicaSvc INFO Total of 10 servers found for host lxplus071.cern.ch [ATLF ATLAS_COOLPROD atlas_dd ATLAS_CONFIG INT8R INTR ATONR_COOL ATONR_CONF DEVDB11 ATLF ] PoolSvc INFO Successfully setup replica sorting algorithm PoolSvc INFO Setting up APR FileCatalog and Streams PoolSvc WARNING Unable to locate catalog for prfile:poolcond/PoolCat_oflcond.xml check your ATLAS_POOLCOND_PATH and DATAPATH variables @@ -67,7 +67,7 @@ IOVDbSvc INFO Opened read transaction for POOL PersistencySvc IOVDbSvc INFO Only 5 POOL conditions files will be open at once IOVDbSvc INFO Cache alignment will be done in 3 slices IOVDbSvc INFO Global tag: OFLCOND-RUN12-SDR-35 set from joboptions -IOVDbSvc INFO Read from meta data only for folder /TagInfo +IOVDbFolder INFO Read from meta data only for folder /TagInfo IOVDbSvc INFO Initialised with 3 connections and 14 folders IOVDbSvc INFO Service IOVDbSvc initialised successfully ByteStreamAddre... INFO Initializing ByteStreamAddressProviderSvc - package version ByteStreamCnvSvcBase-00-00-00 @@ -85,7 +85,7 @@ ByteStreamAddre... INFO Topo Processor RoI = 0x81, 0x91 ByteStreamAddre... INFO -- Will fill Store with id = 0 IOVDbSvc INFO preLoadAddresses: Removing folder /TagInfo. It should only be in the file meta data and was not found. IOVDbSvc INFO Opening COOL connection for COOLOFL_LAR/OFLP200 -ClassIDSvc INFO getRegistryEntries: read 3114 CLIDRegistry entries for module ALL +ClassIDSvc INFO getRegistryEntries: read 3116 CLIDRegistry entries for module ALL IOVSvc INFO No IOVSvcTool associated with store "StoreGateSvc" IOVSvcTool INFO IOVRanges will be checked at every Event IOVDbSvc INFO Opening COOL connection for COOLOFL_TILE/OFLP200 @@ -193,7 +193,7 @@ EndcapDMConstru... INFO Start building EC electronics geometry multi-layered version of absorbers activated, mlabs == 1 ================================================ EndcapDMConstru... INFO Start building EC electronics geometry -GeoModelSvc INFO GeoModelSvc.LArDetectorToolNV SZ= 29096Kb Time = 1.63S +GeoModelSvc INFO GeoModelSvc.LArDetectorToolNV SZ= 28544Kb Time = 1.51S GeoModelSvc.Til... INFO Entering TileDetectorTool::create() TileDddbManager INFO m_tag = ATLAS-R2-2016-01-00-01 TileDddbManager INFO n_tiglob = 5 @@ -205,7 +205,7 @@ TileDddbManager INFO n_tileSwitches = 1 ClassIDSvc INFO getRegistryEntries: read 213 CLIDRegistry entries for module ALL CaloIDHelper_ID... INFO in createObj: creating a TileID helper object in the detector store AtlasDetectorID INFO initialize_from_dictionary - OK -TileNeighbour INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/TileNeighbour_reduced.txt +TileNeighbour INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/TileNeighbour_reduced.txt TileHWIDDetDesc... INFO in createObj: creating a TileHWID helper object in the detector store TileHWID INFO initialize_from_dictionary AtlasDetectorID INFO initialize_from_dictionary - OK @@ -217,9 +217,9 @@ CaloIDHelper_ID... INFO in createObj: creating a LArHEC_ID helper object in th AtlasDetectorID INFO initialize_from_dictionary - OK CaloIDHelper_ID... INFO in createObj: creating a LArFCAL_ID helper object in the detector store AtlasDetectorID INFO initialize_from_dictionary - OK -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCal2DNeighbors-April2011.txt -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCal3DNeighborsNext-April2011.txt -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCal3DNeighborsPrev-April2011.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCal2DNeighbors-April2011.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCal3DNeighborsNext-April2011.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCal3DNeighborsPrev-April2011.txt CaloIDHelper_ID... INFO in createObj: creating a LArMiniFCAL_ID helper object in the detector store AtlasDetectorID INFO initialize_from_dictionary - OK LArMiniFCAL_ID INFO initialize_from_dict - LArCalorimeter dictionary does NOT contain miniFCAL description. Unable to initialize LArMiniFCAL_ID. @@ -254,7 +254,7 @@ GeoModelSvc.Til... INFO Global positioning of barrel with rotation (0,0,0)) a GeoModelSvc.Til... INFO Global positioning of positive ext.barrel with rotation (0,0,0)) and translation (0,0,0) CLHEP::cm GeoModelSvc.Til... INFO Global positioning of negative ext.barrel with rotation (0,0,0)) and translation (0,0,1) CLHEP::cm TileDetDescrMan... INFO Entering create_elements() -GeoModelSvc INFO GeoModelSvc.TileDetectorTool SZ= 4176Kb Time = 1.95S +GeoModelSvc INFO GeoModelSvc.TileDetectorTool SZ= 5196Kb Time = 1.6S ClassIDSvc INFO getRegistryEntries: read 65 CLIDRegistry entries for module ALL TileInfoLoader INFO Initializing....TileInfoLoader TileInfoLoader INFO New ATLAS geometry detected: ATLAS-R2-2016-01-00-01 (010001) version 10001 @@ -276,11 +276,11 @@ TileInfoLoader INFO Sampling fraction for E2 cells 1/107 TileInfoLoader INFO Sampling fraction for E3 cells 1/97 TileInfoLoader INFO Sampling fraction for E4 cells 1/75 TileInfoLoader INFO Sampling fraction for E4' cells 1/75 -TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulsehi_physics.dat -TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulselo_physics.dat -TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulse_adder_tower_physics.dat -TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulse_adder_muonRcv_physics.dat -TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulse_adder_muon_physics.dat +TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulsehi_physics.dat +TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulselo_physics.dat +TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulse_adder_tower_physics.dat +TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulse_adder_muonRcv_physics.dat +TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulse_adder_muon_physics.dat CaloIDHelper_ID... INFO in createObj: creating a CaloLVL1_ID helper object in the detector store CaloLVL1_ID INFO initialize_from_dictionary AtlasDetectorID INFO initialize_from_dictionary - OK @@ -289,12 +289,12 @@ TileCablingSvc INFO Cabling for RUN2 (2014-2017) ATLAS geometry is set via TileCablingSvc INFO Setting Cabling type to 4 TileInfoLoader INFO Placed TileInfo object in the detector store. ToolSvc.TileBad... INFO Creating TileCondProxyCool(ToolSvc.TileBadChanLegacyTool.TileCondProxyCool_OnlBch) for folder: "/TILE/ONL01/STATUS/ADC" -IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileCondProxyCool<TileCalibDrawerBch>[0x7dd4b00]+7fe9d579d64c bound to CondAttrListCollection[/TILE/ONL01/STATUS/ADC] +IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileCondProxyCool<TileCalibDrawerBch>[0xb6e8b00]+7fce66659a54 bound to CondAttrListCollection[/TILE/ONL01/STATUS/ADC] ToolSvc.TileBad... INFO Creating TileCondProxyCool(ToolSvc.TileBadChanLegacyTool.TileCondProxyCool_OflBch) for folder: "/TILE/OFL02/STATUS/ADC" -IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileCondProxyCool<TileCalibDrawerBch>[0x7dd8200]+7fe9d579d64c bound to CondAttrListCollection[/TILE/OFL02/STATUS/ADC] +IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileCondProxyCool<TileCalibDrawerBch>[0xb6eac00]+7fce66659a54 bound to CondAttrListCollection[/TILE/OFL02/STATUS/ADC] ToolSvc.TileBad... INFO ProxyOnlBch and ProxyOflBch will be used for bad channel status -IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileBadChanLegacyTool[0x187d4000]+7fe9d55497ce bound to /TILE/ONL01/STATUS/ADC -IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileBadChanLegacyTool[0x187d4000]+7fe9d55497ce bound to /TILE/OFL02/STATUS/ADC +IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileBadChanLegacyTool[0x19006000]+7fce66473c6e bound to /TILE/ONL01/STATUS/ADC +IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileBadChanLegacyTool[0x19006000]+7fce66473c6e bound to /TILE/OFL02/STATUS/ADC AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00 ClassIDSvc INFO getRegistryEntries: read 265 CLIDRegistry entries for module ALL CondInputLoader INFO Initializing CondInputLoader... @@ -340,7 +340,7 @@ TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCond TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OnlEms) for folder: "/TILE/OFL02/CALIB/EMS" TileSampleNoise... INFO Creating TileCondProxyCool(TileSampleNoiseCondAlg.TileCondProxyCool_NoiseSample) for folder: "/TILE/OFL02/NOISE/SAMPLE" TileTimingCondA... INFO Creating TileCondProxyCool(TileTimingCondAlg.TileCondProxyCool_AdcOffset) for folder: "/TILE/OFL02/TIME/CHANNELOFFSET/PHY" -ClassIDSvc INFO getRegistryEntries: read 3798 CLIDRegistry entries for module ALL +ClassIDSvc INFO getRegistryEntries: read 3930 CLIDRegistry entries for module ALL PyComponentMgr INFO Initializing PyComponentMgr... Finalizer INFO Initializing Finalizer... HistogramPersis...WARNING Histograms saving not required. @@ -373,23 +373,21 @@ EventInfoByteSt... INFO IsCalibration : 0 EventInfoByteSt... INFO EventContext not valid AthenaEventLoopMgr INFO ===>>> start of run 204073 <<<=== IOVDbSvc INFO Opening COOL connection for COOLOFL_LAR/OFLP200 -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to LARAlign-IOVDEP-00 for folder /LAR/Align -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to LArCellPositionShift-ideal for folder /LAR/LArCellPositionShift +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to LARAlign-IOVDEP-00 for folder /LAR/Align +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to LArCellPositionShift-ideal for folder /LAR/LArCellPositionShift IOVDbSvc INFO Disconnecting from COOLOFL_LAR/OFLP200 IOVDbSvc INFO Opening COOL connection for COOLOFL_TILE/OFLP200 -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCes-SIM-06 for folder /TILE/OFL02/CALIB/CES -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCisFitLin-COM-00 for folder /TILE/OFL02/CALIB/CIS/FIT/LIN -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCisFitNln-COM-00 for folder /TILE/OFL02/CALIB/CIS/FIT/NLN -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibEms-COM-00 for folder /TILE/OFL02/CALIB/EMS -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasFiber-000-00 for folder /TILE/OFL02/CALIB/LAS/FIBER -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasLin-COM-00 for folder /TILE/OFL02/CALIB/LAS/LIN -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasNln-COM-00 for folder /TILE/OFL02/CALIB/LAS/NLN -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02NoiseSample-TwoGauss-19 for folder /TILE/OFL02/NOISE/SAMPLE -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02StatusAdc-IOVDEP-03 for folder /TILE/OFL02/STATUS/ADC -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02TimeChanneloffsetPhy-000-00 for folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCes-SIM-06 for folder /TILE/OFL02/CALIB/CES +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCisFitLin-COM-00 for folder /TILE/OFL02/CALIB/CIS/FIT/LIN +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCisFitNln-COM-00 for folder /TILE/OFL02/CALIB/CIS/FIT/NLN +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibEms-COM-00 for folder /TILE/OFL02/CALIB/EMS +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasFiber-000-00 for folder /TILE/OFL02/CALIB/LAS/FIBER +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasLin-COM-00 for folder /TILE/OFL02/CALIB/LAS/LIN +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasNln-COM-00 for folder /TILE/OFL02/CALIB/LAS/NLN +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02NoiseSample-TwoGauss-19 for folder /TILE/OFL02/NOISE/SAMPLE +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02StatusAdc-IOVDEP-03 for folder /TILE/OFL02/STATUS/ADC +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02TimeChanneloffsetPhy-000-00 for folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY IOVDbSvc INFO Disconnecting from COOLOFL_TILE/OFLP200 -DbSession INFO Open DbSession -Domain[ROOT_All] INFO > Access DbDomain READ [ROOT_All] Domain[ROOT_All] INFO -> Access DbDatabase READ [ROOT_All] 06C9EAE8-6F5B-E011-BAAA-003048F0E7AC Domain[ROOT_All] INFO /cvmfs/atlas-condb.cern.ch/repo/conditions/cond09/cond09_mc.000029.gen.COND/cond09_mc.000029.gen.COND._0002.pool.root RootDatabase.open INFO /cvmfs/atlas-condb.cern.ch/repo/conditions/cond09/cond09_mc.000029.gen.COND/cond09_mc.000029.gen.COND._0002.pool.root File version:52200 @@ -411,12 +409,12 @@ CaloIDHelper_ID... INFO in createObj: creating a LArHEC_SuperCell_ID helper ob AtlasDetectorID INFO initialize_from_dictionary - OK CaloIDHelper_ID... INFO in createObj: creating a LArFCAL_SuperCell_ID helper object in the detector store AtlasDetectorID INFO initialize_from_dictionary - OK -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells2DNeighborsNew-April2014.txt -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells3DNeighborsNextNew-April2014.txt -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells3DNeighborsPrevNew-April2014.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells2DNeighborsNew-April2014.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells3DNeighborsNextNew-April2014.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells3DNeighborsPrevNew-April2014.txt CaloIDHelper_ID... INFO in createObj: creating a Tile_SuperCell_ID helper object in the detector store AtlasDetectorID INFO initialize_from_dictionary - OK -TileNeighbour INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/TileSuperCellNeighbour.txt +TileNeighbour INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/TileSuperCellNeighbour.txt AtlasDetectorID INFO initialize_from_dictionary - OK CaloIdMgrDetDes... INFO Finished CaloIdMgrDetDes... INFO Initializing CaloIdMgr from values in CaloIdMgrDetDescrCnv @@ -447,11 +445,6 @@ ClassIDSvc INFO getRegistryEntries: read 2380 CLIDRegistry entries fo ToolSvc.TileROD... INFO TileL2Builder initialization completed ToolSvc.TileL2C... INFO Initializing TileL2ContByteStreamTool AthenaEventLoopMgr INFO ===>>> done processing event #1129572, run #204073 1 events processed so far <<<=== -/cvmfs/atlas-co... INFO Database being retired... -Domain[ROOT_All] INFO -> Deaccess DbDatabase READ [ROOT_All] 06C9EAE8-6F5B-E011-BAAA-003048F0E7AC -/cvmfs/atlas-co... INFO Database being retired... -Domain[ROOT_All] INFO -> Deaccess DbDatabase READ [ROOT_All] 8667C6F2-1559-DE11-A611-000423D9A21A -Domain[ROOT_All] INFO > Deaccess DbDomain READ [ROOT_All] AthenaEventLoopMgr INFO ===>>> start processing event #1129665, run #204073 1 events processed so far <<<=== AthenaEventLoopMgr INFO ===>>> done processing event #1129665, run #204073 2 events processed so far <<<=== AthenaEventLoopMgr INFO ===>>> start processing event #1131212, run #204073 2 events processed so far <<<=== @@ -652,6 +645,10 @@ AthenaEventLoopMgr INFO ===>>> start processing event #1156351, run #204073 AthenaEventLoopMgr INFO ===>>> done processing event #1156351, run #204073 100 events processed so far <<<=== TileInfoLoader INFO Handling EndRun incident TileInfoLoader INFO Removed TileInfo object from detector store. +/cvmfs/atlas-co... INFO Database being retired... +Domain[ROOT_All] INFO -> Deaccess DbDatabase READ [ROOT_All] 06C9EAE8-6F5B-E011-BAAA-003048F0E7AC +/cvmfs/atlas-co... INFO Database being retired... +Domain[ROOT_All] INFO -> Deaccess DbDatabase READ [ROOT_All] 8667C6F2-1559-DE11-A611-000423D9A21A Domain[ROOT_All] INFO > Deaccess DbDomain READ [ROOT_All] ApplicationMgr INFO Application Manager Stopped successfully IncidentProcAlg1 INFO Finalize @@ -662,23 +659,23 @@ IncidentProcAlg2 INFO Finalize EventInfoByteSt... INFO finalize PyComponentMgr INFO Finalizing PyComponentMgr... IdDictDetDescrCnv INFO in finalize -IOVDbSvc INFO Folder /LAR/Align (PoolRef) db-read 1/1 objs/chan/bytes 1/1/170 (( 4.23 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/CES (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/103344 (( 8.22 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/CIS/FIT/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/80 (( 5.80 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/CIS/FIT/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/80 (( 4.61 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/EMS (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/92 (( 6.53 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/LAS/FIBER (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/940 (( 3.08 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/LAS/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/72 (( 4.00 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/LAS/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/76 (( 3.72 ))s -IOVDbSvc INFO Folder /TILE/OFL02/NOISE/SAMPLE (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/641504 (( 5.78 ))s -IOVDbSvc INFO Folder /TILE/OFL02/STATUS/ADC (AttrListColl) db-read 1/2 objs/chan/bytes 277/277/93060 (( 1.06 ))s -IOVDbSvc INFO Folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/96 (( 1.23 ))s -IOVDbSvc INFO Folder /TILE/ONL01/STATUS/ADC (AttrListColl) db-read 1/2 objs/chan/bytes 277/277/76 (( 0.07 ))s -IOVDbSvc INFO Folder /LAR/LArCellPositionShift (PoolRef) db-read 1/1 objs/chan/bytes 1/1/195 (( 1.09 ))s -IOVDbSvc INFO Total payload read from COOL: 839785 bytes in (( 49.42 ))s +IOVDbFolder INFO Folder /LAR/Align (PoolRef) db-read 1/1 objs/chan/bytes 1/1/170 (( 0.08 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CES (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/103344 (( 0.12 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/80 (( 0.09 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/80 (( 0.12 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/EMS (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/92 (( 0.05 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/FIBER (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/940 (( 0.07 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/72 (( 0.06 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/76 (( 0.06 ))s +IOVDbFolder INFO Folder /TILE/OFL02/NOISE/SAMPLE (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/641504 (( 0.13 ))s +IOVDbFolder INFO Folder /TILE/OFL02/STATUS/ADC (AttrListColl) db-read 1/2 objs/chan/bytes 277/277/93060 (( 0.04 ))s +IOVDbFolder INFO Folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/96 (( 0.05 ))s +IOVDbFolder INFO Folder /TILE/ONL01/STATUS/ADC (AttrListColl) db-read 1/2 objs/chan/bytes 277/277/76 (( 0.01 ))s +IOVDbFolder INFO Folder /LAR/LArCellPositionShift (PoolRef) db-read 1/1 objs/chan/bytes 1/1/195 (( 0.03 ))s +IOVDbSvc INFO bytes in (( 0.91 ))s IOVDbSvc INFO Connection sqlite://;schema=mycool.db;dbname=OFLP200 : nConnect: 0 nFolders: 0 ReadTime: (( 0.00 ))s -IOVDbSvc INFO Connection COOLOFL_LAR/OFLP200 : nConnect: 2 nFolders: 2 ReadTime: (( 5.32 ))s -IOVDbSvc INFO Connection COOLOFL_TILE/OFLP200 : nConnect: 2 nFolders: 11 ReadTime: (( 44.10 ))s +IOVDbSvc INFO Connection COOLOFL_LAR/OFLP200 : nConnect: 2 nFolders: 2 ReadTime: (( 0.11 ))s +IOVDbSvc INFO Connection COOLOFL_TILE/OFLP200 : nConnect: 2 nFolders: 11 ReadTime: (( 0.80 ))s TileInfoLoader INFO TileInfoLoader::finalize() AthDictLoaderSvc INFO in finalize... ToolSvc INFO Removing all tools created by ToolSvc @@ -687,9 +684,9 @@ ToolSvc.TileROD... INFO Finalizing *****Chrono***** INFO **************************************************************************************************** *****Chrono***** INFO The Final CPU consumption ( Chrono ) Table (ordered) *****Chrono***** INFO **************************************************************************************************** -cObjR_ALL INFO Time User : Tot= 0.76 [s] Ave/Min/Max= 0.38(+- 0.36)/ 0.02/ 0.74 [s] #= 2 -cObj_ALL INFO Time User : Tot= 1.02 [s] Ave/Min/Max=0.068(+-0.209)/ 0/ 0.83 [s] #= 15 -ChronoStatSvc INFO Time User : Tot= 31.9 [s] #= 1 +cObjR_ALL INFO Time User : Tot= 0.82 [s] Ave/Min/Max= 0.41(+- 0.4)/ 0.01/ 0.81 [s] #= 2 +cObj_ALL INFO Time User : Tot= 1.07 [s] Ave/Min/Max=0.0713(+-0.228)/ 0/ 0.91 [s] #= 15 +ChronoStatSvc INFO Time User : Tot= 30.5 [s] #= 1 *****Chrono***** INFO **************************************************************************************************** ChronoStatSvc.f... INFO Service finalized successfully ApplicationMgr INFO Application Manager Finalized successfully diff --git a/TileCalorimeter/TileSvc/TileByteStream/share/TileLaserObjByteStreamCnv_test.ref b/TileCalorimeter/TileSvc/TileByteStream/share/TileLaserObjByteStreamCnv_test.ref index 69f2a01f3c541128aadd08d306e6361b9ff7c38f..cd2a86dc93272e09b79f7dbf5473ce942ea30be3 100644 --- a/TileCalorimeter/TileSvc/TileByteStream/share/TileLaserObjByteStreamCnv_test.ref +++ b/TileCalorimeter/TileSvc/TileByteStream/share/TileLaserObjByteStreamCnv_test.ref @@ -1,14 +1,14 @@ -Thu Nov 8 04:21:48 CET 2018 +Thu Dec 6 04:09:24 CET 2018 Preloading tcmalloc_minimal.so Py:Athena INFO including file "AthenaCommon/Preparation.py" -Py:Athena INFO using release [AthenaWorkDir-22.0.1] [x86_64-slc6-gcc62-dbg] [atlas-work3/3a1173767ab] -- built on [2018-11-07T2213] +Py:Athena INFO using release [AthenaWorkDir-22.0.1] [x86_64-slc6-gcc62-dbg] [atlas-work3/fa0fd6d0989] -- built on [2018-12-06T0025] Py:Athena INFO including file "AthenaCommon/Atlas.UnixStandardJob.py" Py:Athena INFO executing ROOT6Setup Py:Athena INFO including file "AthenaCommon/Execution.py" Py:Athena INFO including file "TileByteStream/TileLaserObjByteStreamCnv_test.py" [?1034hSetGeometryVersion.py obtained major release version 22 Py:Athena INFO including file "IdDictDetDescrCnv/IdDictDetDescrCnv_joboptions.py" -Py:ConfigurableDb INFO Read module info for 5557 configurables from 46 genConfDb files +Py:ConfigurableDb INFO Read module info for 5473 configurables from 60 genConfDb files Py:ConfigurableDb INFO No duplicates have been found: that's good ! EventInfoMgtInit: Got release version Athena-22.0.1 Py:IOVDbSvc.CondDB INFO Setting up conditions DB access to instance OFLP200 @@ -18,7 +18,7 @@ Py:inputFilePeeker INFO Executing inputFilePeeker.py Py:AthFile INFO loading cache from [athfile-cache.ascii.gz]... Py:AthFile INFO loading cache from [athfile-cache.ascii.gz]... [done] Py:inputFilePeeker INFO stream_names not present in input bytestream file. Giving default name 'StreamRAW' -Py:inputFilePeeker INFO Successfully filled inputFileSummary from file /afs/cern.ch/atlas/maxidisk/d33/referencefiles/TileByteStream/TileByteStream-01-00-00/data18_tilecomm.00363899.calibration_tile.daq.RAW._lb0000._TileREB-ROS._0005-200ev.data +Py:inputFilePeeker INFO Successfully filled inputFileSummary from file /cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/TileByteStream/TileByteStream-01-00-00/data18_tilecomm.00363899.calibration_tile.daq.RAW._lb0000._TileREB-ROS._0005-200ev.data Py:inputFilePeeker INFO Extracted streams ['StreamRAW'] from input file Py:TileConditions_jobOptions.py INFO Forcing RUN2a (2018) cabling for run 363899 with geometry ATLAS-R2-2016-01-00-01 Py:TileConditions_jobOptions.py INFO Adjusting TileInfo for 7 samples @@ -34,8 +34,8 @@ ApplicationMgr INFO Updating Gaudi::PluginService::SetDebug(level) to leve ApplicationMgr INFO Updating Gaudi::PluginService::SetDebug(level) to level= 'PluginDebugLevel':0 ApplicationMgr SUCCESS ==================================================================================================================================== - Welcome to ApplicationMgr (GaudiCoreSvc v30r4) - running on lxplus075.cern.ch on Thu Nov 8 04:22:12 2018 + Welcome to ApplicationMgr (GaudiCoreSvc v30r5) + running on lxplus071.cern.ch on Thu Dec 6 04:09:46 2018 ==================================================================================================================================== ApplicationMgr INFO Successfully loaded modules : AthenaServices ApplicationMgr INFO Application Manager Configured successfully @@ -52,8 +52,8 @@ PoolSvc INFO io_register[PoolSvc](xmlcatalog_file:PoolFileCatalog.x PoolSvc INFO Set connectionsvc retry/timeout/IDLE timeout to 'ConnectionRetrialPeriod':300/ 'ConnectionRetrialTimeOut':3600/ 'ConnectionTimeOut':5 seconds with connection cleanup disabled PoolSvc INFO Frontier compression level set to 5 DBReplicaSvc INFO Frontier server at (serverurl=http://atlasfrontier-local.cern.ch:8000/atlr)(serverurl=http://atlasfrontier-ai.cern.ch:8000/atlr)(serverurl=http://lcgft-atlas.gridpp.rl.ac.uk:3128/frontierATLAS)(serverurl=http://ccfrontier.in2p3.fr:23128/ccin2p3-AtlasFrontier)(proxyurl=http://ca-proxy.cern.ch:3128)(proxyurl=http://ca-proxy-meyrin.cern.ch:3128)(proxyurl=http://ca-proxy-wigner.cern.ch:3128)(proxyurl=http://atlasbpfrontier.cern.ch:3127)(proxyurl=http://atlasbpfrontier.fnal.gov:3127) will be considered for COOL data -DBReplicaSvc INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/dbreplica.config -DBReplicaSvc INFO Total of 10 servers found for host lxplus075.cern.ch [ATLF ATLAS_COOLPROD atlas_dd ATLAS_CONFIG INT8R INTR ATONR_COOL ATONR_CONF DEVDB11 ATLF ] +DBReplicaSvc INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/dbreplica.config +DBReplicaSvc INFO Total of 10 servers found for host lxplus071.cern.ch [ATLF ATLAS_COOLPROD atlas_dd ATLAS_CONFIG INT8R INTR ATONR_COOL ATONR_CONF DEVDB11 ATLF ] PoolSvc INFO Successfully setup replica sorting algorithm PoolSvc INFO Setting up APR FileCatalog and Streams PoolSvc WARNING Unable to locate catalog for prfile:poolcond/PoolCat_oflcond.xml check your ATLAS_POOLCOND_PATH and DATAPATH variables @@ -67,7 +67,7 @@ IOVDbSvc INFO Opened read transaction for POOL PersistencySvc IOVDbSvc INFO Only 5 POOL conditions files will be open at once IOVDbSvc INFO Cache alignment will be done in 3 slices IOVDbSvc INFO Global tag: OFLCOND-RUN12-SDR-35 set from joboptions -IOVDbSvc INFO Read from meta data only for folder /TagInfo +IOVDbFolder INFO Read from meta data only for folder /TagInfo IOVDbSvc INFO Initialised with 3 connections and 14 folders IOVDbSvc INFO Service IOVDbSvc initialised successfully ByteStreamAddre... INFO Initializing ByteStreamAddressProviderSvc - package version ByteStreamCnvSvcBase-00-00-00 @@ -85,7 +85,7 @@ ByteStreamAddre... INFO Topo Processor RoI = 0x81, 0x91 ByteStreamAddre... INFO -- Will fill Store with id = 0 IOVDbSvc INFO preLoadAddresses: Removing folder /TagInfo. It should only be in the file meta data and was not found. IOVDbSvc INFO Opening COOL connection for COOLOFL_LAR/OFLP200 -ClassIDSvc INFO getRegistryEntries: read 3114 CLIDRegistry entries for module ALL +ClassIDSvc INFO getRegistryEntries: read 3116 CLIDRegistry entries for module ALL IOVSvc INFO No IOVSvcTool associated with store "StoreGateSvc" IOVSvcTool INFO IOVRanges will be checked at every Event IOVDbSvc INFO Opening COOL connection for COOLOFL_TILE/OFLP200 @@ -192,7 +192,7 @@ EndcapDMConstru... INFO Start building EC electronics geometry multi-layered version of absorbers activated, mlabs == 1 ================================================ EndcapDMConstru... INFO Start building EC electronics geometry -GeoModelSvc INFO GeoModelSvc.LArDetectorToolNV SZ= 29096Kb Time = 1.64S +GeoModelSvc INFO GeoModelSvc.LArDetectorToolNV SZ= 29568Kb Time = 1.58S GeoModelSvc.Til... INFO Entering TileDetectorTool::create() TileDddbManager INFO m_tag = ATLAS-R2-2016-01-00-01 TileDddbManager INFO n_tiglob = 5 @@ -204,7 +204,7 @@ TileDddbManager INFO n_tileSwitches = 1 ClassIDSvc INFO getRegistryEntries: read 213 CLIDRegistry entries for module ALL CaloIDHelper_ID... INFO in createObj: creating a TileID helper object in the detector store AtlasDetectorID INFO initialize_from_dictionary - OK -TileNeighbour INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/TileNeighbour_reduced.txt +TileNeighbour INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/TileNeighbour_reduced.txt TileHWIDDetDesc... INFO in createObj: creating a TileHWID helper object in the detector store TileHWID INFO initialize_from_dictionary AtlasDetectorID INFO initialize_from_dictionary - OK @@ -216,9 +216,9 @@ CaloIDHelper_ID... INFO in createObj: creating a LArHEC_ID helper object in th AtlasDetectorID INFO initialize_from_dictionary - OK CaloIDHelper_ID... INFO in createObj: creating a LArFCAL_ID helper object in the detector store AtlasDetectorID INFO initialize_from_dictionary - OK -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCal2DNeighbors-April2011.txt -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCal3DNeighborsNext-April2011.txt -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCal3DNeighborsPrev-April2011.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCal2DNeighbors-April2011.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCal3DNeighborsNext-April2011.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCal3DNeighborsPrev-April2011.txt CaloIDHelper_ID... INFO in createObj: creating a LArMiniFCAL_ID helper object in the detector store AtlasDetectorID INFO initialize_from_dictionary - OK LArMiniFCAL_ID INFO initialize_from_dict - LArCalorimeter dictionary does NOT contain miniFCAL description. Unable to initialize LArMiniFCAL_ID. @@ -253,7 +253,7 @@ GeoModelSvc.Til... INFO Global positioning of barrel with rotation (0,0,0)) a GeoModelSvc.Til... INFO Global positioning of positive ext.barrel with rotation (0,0,0)) and translation (0,0,0) CLHEP::cm GeoModelSvc.Til... INFO Global positioning of negative ext.barrel with rotation (0,0,0)) and translation (0,0,1) CLHEP::cm TileDetDescrMan... INFO Entering create_elements() -GeoModelSvc INFO GeoModelSvc.TileDetectorTool SZ= 5200Kb Time = 1.65S +GeoModelSvc INFO GeoModelSvc.TileDetectorTool SZ= 4172Kb Time = 1.67S ClassIDSvc INFO getRegistryEntries: read 65 CLIDRegistry entries for module ALL TileInfoLoader INFO Initializing....TileInfoLoader TileInfoLoader INFO New ATLAS geometry detected: ATLAS-R2-2016-01-00-01 (010001) version 10001 @@ -275,11 +275,11 @@ TileInfoLoader INFO Sampling fraction for E2 cells 1/107 TileInfoLoader INFO Sampling fraction for E3 cells 1/97 TileInfoLoader INFO Sampling fraction for E4 cells 1/75 TileInfoLoader INFO Sampling fraction for E4' cells 1/75 -TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulsehi_physics.dat -TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulselo_physics.dat -TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulse_adder_tower_physics.dat -TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulse_adder_muonRcv_physics.dat -TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulse_adder_muon_physics.dat +TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulsehi_physics.dat +TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulselo_physics.dat +TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulse_adder_tower_physics.dat +TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulse_adder_muonRcv_physics.dat +TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulse_adder_muon_physics.dat CaloIDHelper_ID... INFO in createObj: creating a CaloLVL1_ID helper object in the detector store CaloLVL1_ID INFO initialize_from_dictionary AtlasDetectorID INFO initialize_from_dictionary - OK @@ -288,12 +288,12 @@ TileCablingSvc INFO Cabling for RUN2a (2018) ATLAS geometry is set via job TileCablingSvc INFO Setting Cabling type to 5 TileInfoLoader INFO Placed TileInfo object in the detector store. ToolSvc.TileBad... INFO Creating TileCondProxyCool(ToolSvc.TileBadChanLegacyTool.TileCondProxyCool_OnlBch) for folder: "/TILE/ONL01/STATUS/ADC" -IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileCondProxyCool<TileCalibDrawerBch>[0x7a54b00]+7f7915d4164c bound to CondAttrListCollection[/TILE/ONL01/STATUS/ADC] +IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileCondProxyCool<TileCalibDrawerBch>[0xc4a9600]+7f967362ba54 bound to CondAttrListCollection[/TILE/ONL01/STATUS/ADC] ToolSvc.TileBad... INFO Creating TileCondProxyCool(ToolSvc.TileBadChanLegacyTool.TileCondProxyCool_OflBch) for folder: "/TILE/OFL02/STATUS/ADC" -IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileCondProxyCool<TileCalibDrawerBch>[0x7a58200]+7f7915d4164c bound to CondAttrListCollection[/TILE/OFL02/STATUS/ADC] +IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileCondProxyCool<TileCalibDrawerBch>[0xc4aac00]+7f967362ba54 bound to CondAttrListCollection[/TILE/OFL02/STATUS/ADC] ToolSvc.TileBad... INFO ProxyOnlBch and ProxyOflBch will be used for bad channel status -IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileBadChanLegacyTool[0x18495000]+7f7915aed7ce bound to /TILE/ONL01/STATUS/ADC -IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileBadChanLegacyTool[0x18495000]+7f7915aed7ce bound to /TILE/OFL02/STATUS/ADC +IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileBadChanLegacyTool[0x19def000]+7f9673445c6e bound to /TILE/ONL01/STATUS/ADC +IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileBadChanLegacyTool[0x19def000]+7f9673445c6e bound to /TILE/OFL02/STATUS/ADC AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00 ClassIDSvc INFO getRegistryEntries: read 265 CLIDRegistry entries for module ALL CondInputLoader INFO Initializing CondInputLoader... @@ -339,7 +339,7 @@ TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCond TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OnlEms) for folder: "/TILE/OFL02/CALIB/EMS" TileSampleNoise... INFO Creating TileCondProxyCool(TileSampleNoiseCondAlg.TileCondProxyCool_NoiseSample) for folder: "/TILE/OFL02/NOISE/SAMPLE" TileTimingCondA... INFO Creating TileCondProxyCool(TileTimingCondAlg.TileCondProxyCool_AdcOffset) for folder: "/TILE/OFL02/TIME/CHANNELOFFSET/PHY" -ClassIDSvc INFO getRegistryEntries: read 4423 CLIDRegistry entries for module ALL +ClassIDSvc INFO getRegistryEntries: read 4555 CLIDRegistry entries for module ALL PyComponentMgr INFO Initializing PyComponentMgr... Finalizer INFO Initializing Finalizer... HistogramPersis...WARNING Histograms saving not required. @@ -348,7 +348,7 @@ ByteStreamInputSvc INFO Initializing ByteStreamInputSvc - package version Byte EventSelector INFO reinitialization... AthenaEventLoopMgr INFO Setup EventSelector service EventSelector ApplicationMgr INFO Application Manager Initialized successfully -ByteStreamInputSvc INFO Picked valid file: /afs/cern.ch/atlas/maxidisk/d33/referencefiles/TileByteStream/TileByteStream-01-00-00/data18_tilecomm.00363899.calibration_tile.daq.RAW._lb0000._TileREB-ROS._0005-200ev.data +ByteStreamInputSvc INFO Picked valid file: /cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/TileByteStream/TileByteStream-01-00-00/data18_tilecomm.00363899.calibration_tile.daq.RAW._lb0000._TileREB-ROS._0005-200ev.data ClassIDSvc INFO getRegistryEntries: read 691 CLIDRegistry entries for module ALL CondInputLoader INFO created CondCont<CondAttrListCollection> with key 'ConditionStore+/TILE/OFL02/CALIB/CES' CondInputLoader INFO created CondCont<CondAttrListCollection> with key 'ConditionStore+/TILE/OFL02/CALIB/CIS/FIT/LIN' @@ -372,23 +372,21 @@ EventInfoByteSt... INFO IsCalibration : 0 EventInfoByteSt... INFO EventContext not valid AthenaEventLoopMgr INFO ===>>> start of run 363899 <<<=== IOVDbSvc INFO Opening COOL connection for COOLOFL_LAR/OFLP200 -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to LARAlign-IOVDEP-00 for folder /LAR/Align -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to LArCellPositionShift-ideal for folder /LAR/LArCellPositionShift +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to LARAlign-IOVDEP-00 for folder /LAR/Align +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to LArCellPositionShift-ideal for folder /LAR/LArCellPositionShift IOVDbSvc INFO Disconnecting from COOLOFL_LAR/OFLP200 IOVDbSvc INFO Opening COOL connection for COOLOFL_TILE/OFLP200 -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCes-SIM-06 for folder /TILE/OFL02/CALIB/CES -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCisFitLin-COM-00 for folder /TILE/OFL02/CALIB/CIS/FIT/LIN -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCisFitNln-COM-00 for folder /TILE/OFL02/CALIB/CIS/FIT/NLN -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibEms-COM-00 for folder /TILE/OFL02/CALIB/EMS -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasFiber-000-00 for folder /TILE/OFL02/CALIB/LAS/FIBER -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasLin-COM-00 for folder /TILE/OFL02/CALIB/LAS/LIN -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasNln-COM-00 for folder /TILE/OFL02/CALIB/LAS/NLN -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02NoiseSample-TwoGauss-19 for folder /TILE/OFL02/NOISE/SAMPLE -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02StatusAdc-IOVDEP-03 for folder /TILE/OFL02/STATUS/ADC -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02TimeChanneloffsetPhy-000-00 for folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCes-SIM-06 for folder /TILE/OFL02/CALIB/CES +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCisFitLin-COM-00 for folder /TILE/OFL02/CALIB/CIS/FIT/LIN +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCisFitNln-COM-00 for folder /TILE/OFL02/CALIB/CIS/FIT/NLN +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibEms-COM-00 for folder /TILE/OFL02/CALIB/EMS +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasFiber-000-00 for folder /TILE/OFL02/CALIB/LAS/FIBER +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasLin-COM-00 for folder /TILE/OFL02/CALIB/LAS/LIN +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasNln-COM-00 for folder /TILE/OFL02/CALIB/LAS/NLN +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02NoiseSample-TwoGauss-19 for folder /TILE/OFL02/NOISE/SAMPLE +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02StatusAdc-IOVDEP-03 for folder /TILE/OFL02/STATUS/ADC +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02TimeChanneloffsetPhy-000-00 for folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY IOVDbSvc INFO Disconnecting from COOLOFL_TILE/OFLP200 -DbSession INFO Open DbSession -Domain[ROOT_All] INFO > Access DbDomain READ [ROOT_All] Domain[ROOT_All] INFO -> Access DbDatabase READ [ROOT_All] 06C9EAE8-6F5B-E011-BAAA-003048F0E7AC Domain[ROOT_All] INFO /cvmfs/atlas-condb.cern.ch/repo/conditions/cond09/cond09_mc.000029.gen.COND/cond09_mc.000029.gen.COND._0002.pool.root RootDatabase.open INFO /cvmfs/atlas-condb.cern.ch/repo/conditions/cond09/cond09_mc.000029.gen.COND/cond09_mc.000029.gen.COND._0002.pool.root File version:52200 @@ -410,12 +408,12 @@ CaloIDHelper_ID... INFO in createObj: creating a LArHEC_SuperCell_ID helper ob AtlasDetectorID INFO initialize_from_dictionary - OK CaloIDHelper_ID... INFO in createObj: creating a LArFCAL_SuperCell_ID helper object in the detector store AtlasDetectorID INFO initialize_from_dictionary - OK -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells2DNeighborsNew-April2014.txt -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells3DNeighborsNextNew-April2014.txt -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells3DNeighborsPrevNew-April2014.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells2DNeighborsNew-April2014.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells3DNeighborsNextNew-April2014.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells3DNeighborsPrevNew-April2014.txt CaloIDHelper_ID... INFO in createObj: creating a Tile_SuperCell_ID helper object in the detector store AtlasDetectorID INFO initialize_from_dictionary - OK -TileNeighbour INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/TileSuperCellNeighbour.txt +TileNeighbour INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/TileSuperCellNeighbour.txt AtlasDetectorID INFO initialize_from_dictionary - OK CaloIdMgrDetDes... INFO Finished CaloIdMgrDetDes... INFO Initializing CaloIdMgr from values in CaloIdMgrDetDescrCnv @@ -445,11 +443,6 @@ TileBadChannels... INFO No drawer trips probabilities found in DB ClassIDSvc INFO getRegistryEntries: read 2380 CLIDRegistry entries for module ALL ToolSvc.TileROD... INFO TileL2Builder initialization completed AthenaEventLoopMgr INFO ===>>> done processing event #18124, run #363899 1 events processed so far <<<=== -/cvmfs/atlas-co... INFO Database being retired... -Domain[ROOT_All] INFO -> Deaccess DbDatabase READ [ROOT_All] 06C9EAE8-6F5B-E011-BAAA-003048F0E7AC -/cvmfs/atlas-co... INFO Database being retired... -Domain[ROOT_All] INFO -> Deaccess DbDatabase READ [ROOT_All] 8667C6F2-1559-DE11-A611-000423D9A21A -Domain[ROOT_All] INFO > Deaccess DbDomain READ [ROOT_All] AthenaEventLoopMgr INFO ===>>> start processing event #18125, run #363899 1 events processed so far <<<=== AthenaEventLoopMgr INFO ===>>> done processing event #18125, run #363899 2 events processed so far <<<=== AthenaEventLoopMgr INFO ===>>> start processing event #18126, run #363899 2 events processed so far <<<=== @@ -650,6 +643,10 @@ AthenaEventLoopMgr INFO ===>>> start processing event #18223, run #363899 9 AthenaEventLoopMgr INFO ===>>> done processing event #18223, run #363899 100 events processed so far <<<=== TileInfoLoader INFO Handling EndRun incident TileInfoLoader INFO Removed TileInfo object from detector store. +/cvmfs/atlas-co... INFO Database being retired... +Domain[ROOT_All] INFO -> Deaccess DbDatabase READ [ROOT_All] 06C9EAE8-6F5B-E011-BAAA-003048F0E7AC +/cvmfs/atlas-co... INFO Database being retired... +Domain[ROOT_All] INFO -> Deaccess DbDatabase READ [ROOT_All] 8667C6F2-1559-DE11-A611-000423D9A21A Domain[ROOT_All] INFO > Deaccess DbDomain READ [ROOT_All] ApplicationMgr INFO Application Manager Stopped successfully IncidentProcAlg1 INFO Finalize @@ -660,23 +657,23 @@ IncidentProcAlg2 INFO Finalize EventInfoByteSt... INFO finalize PyComponentMgr INFO Finalizing PyComponentMgr... IdDictDetDescrCnv INFO in finalize -IOVDbSvc INFO Folder /LAR/Align (PoolRef) db-read 1/1 objs/chan/bytes 1/1/170 (( 0.51 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/CES (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/104912 (( 0.21 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/CIS/FIT/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/80 (( 0.07 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/CIS/FIT/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/80 (( 0.06 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/EMS (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/92 (( 0.05 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/LAS/FIBER (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/940 (( 0.06 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/LAS/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/72 (( 0.06 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/LAS/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/76 (( 0.07 ))s -IOVDbSvc INFO Folder /TILE/OFL02/NOISE/SAMPLE (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/641536 (( 0.07 ))s -IOVDbSvc INFO Folder /TILE/OFL02/STATUS/ADC (AttrListColl) db-read 1/2 objs/chan/bytes 277/277/43176 (( 0.05 ))s -IOVDbSvc INFO Folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/96 (( 0.05 ))s -IOVDbSvc INFO Folder /TILE/ONL01/STATUS/ADC (AttrListColl) db-read 1/2 objs/chan/bytes 277/277/76 (( 0.02 ))s -IOVDbSvc INFO Folder /LAR/LArCellPositionShift (PoolRef) db-read 1/1 objs/chan/bytes 1/1/195 (( 0.05 ))s -IOVDbSvc INFO Total payload read from COOL: 791501 bytes in (( 1.31 ))s +IOVDbFolder INFO Folder /LAR/Align (PoolRef) db-read 1/1 objs/chan/bytes 1/1/170 (( 0.09 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CES (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/104912 (( 0.11 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/80 (( 0.06 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/80 (( 0.05 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/EMS (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/92 (( 0.05 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/FIBER (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/940 (( 0.05 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/72 (( 0.06 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/76 (( 0.06 ))s +IOVDbFolder INFO Folder /TILE/OFL02/NOISE/SAMPLE (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/641536 (( 0.08 ))s +IOVDbFolder INFO Folder /TILE/OFL02/STATUS/ADC (AttrListColl) db-read 1/2 objs/chan/bytes 277/277/43176 (( 0.08 ))s +IOVDbFolder INFO Folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/96 (( 0.09 ))s +IOVDbFolder INFO Folder /TILE/ONL01/STATUS/ADC (AttrListColl) db-read 1/2 objs/chan/bytes 277/277/76 (( 0.04 ))s +IOVDbFolder INFO Folder /LAR/LArCellPositionShift (PoolRef) db-read 1/1 objs/chan/bytes 1/1/195 (( 0.03 ))s +IOVDbSvc INFO bytes in (( 0.84 ))s IOVDbSvc INFO Connection sqlite://;schema=mycool.db;dbname=OFLP200 : nConnect: 0 nFolders: 0 ReadTime: (( 0.00 ))s -IOVDbSvc INFO Connection COOLOFL_LAR/OFLP200 : nConnect: 2 nFolders: 2 ReadTime: (( 0.56 ))s -IOVDbSvc INFO Connection COOLOFL_TILE/OFLP200 : nConnect: 2 nFolders: 11 ReadTime: (( 0.76 ))s +IOVDbSvc INFO Connection COOLOFL_LAR/OFLP200 : nConnect: 2 nFolders: 2 ReadTime: (( 0.12 ))s +IOVDbSvc INFO Connection COOLOFL_TILE/OFLP200 : nConnect: 2 nFolders: 11 ReadTime: (( 0.72 ))s TileInfoLoader INFO TileInfoLoader::finalize() AthDictLoaderSvc INFO in finalize... ToolSvc INFO Removing all tools created by ToolSvc @@ -685,9 +682,9 @@ ToolSvc.TileROD... INFO Finalizing *****Chrono***** INFO **************************************************************************************************** *****Chrono***** INFO The Final CPU consumption ( Chrono ) Table (ordered) *****Chrono***** INFO **************************************************************************************************** -cObjR_ALL INFO Time User : Tot= 0.81 [s] Ave/Min/Max=0.405(+-0.395)/ 0.01/ 0.8 [s] #= 2 -cObj_ALL INFO Time User : Tot= 1.07 [s] Ave/Min/Max=0.0713(+-0.225)/ 0/ 0.9 [s] #= 15 -ChronoStatSvc INFO Time User : Tot= 24.9 [s] #= 1 +cObjR_ALL INFO Time User : Tot= 0.78 [s] Ave/Min/Max= 0.39(+- 0.37)/ 0.02/ 0.76 [s] #= 2 +cObj_ALL INFO Time User : Tot= 1.05 [s] Ave/Min/Max= 0.07(+-0.218)/ 0/ 0.87 [s] #= 15 +ChronoStatSvc INFO Time User : Tot= 23.8 [s] #= 1 *****Chrono***** INFO **************************************************************************************************** ChronoStatSvc.f... INFO Service finalized successfully ApplicationMgr INFO Application Manager Finalized successfully diff --git a/TileCalorimeter/TileSvc/TileByteStream/share/TileMuRcvContByteStreamCnv_test.ref b/TileCalorimeter/TileSvc/TileByteStream/share/TileMuRcvContByteStreamCnv_test.ref index 8dc3af21bb227fa5718502b8dc8f59cb27846e9f..7cd005cc797c3bb7c0d91a25615da2472fb147f8 100644 --- a/TileCalorimeter/TileSvc/TileByteStream/share/TileMuRcvContByteStreamCnv_test.ref +++ b/TileCalorimeter/TileSvc/TileByteStream/share/TileMuRcvContByteStreamCnv_test.ref @@ -1,14 +1,14 @@ -Thu Nov 8 04:13:53 CET 2018 +Thu Dec 6 04:15:01 CET 2018 Preloading tcmalloc_minimal.so Py:Athena INFO including file "AthenaCommon/Preparation.py" -Py:Athena INFO using release [AthenaWorkDir-22.0.1] [x86_64-slc6-gcc62-dbg] [atlas-work3/3a1173767ab] -- built on [2018-11-07T2213] +Py:Athena INFO using release [AthenaWorkDir-22.0.1] [x86_64-slc6-gcc62-dbg] [atlas-work3/fa0fd6d0989] -- built on [2018-12-06T0025] Py:Athena INFO including file "AthenaCommon/Atlas.UnixStandardJob.py" Py:Athena INFO executing ROOT6Setup Py:Athena INFO including file "AthenaCommon/Execution.py" Py:Athena INFO including file "TileByteStream/TileMuRcvContByteStreamCnv_test.py" [?1034hSetGeometryVersion.py obtained major release version 22 Py:Athena INFO including file "IdDictDetDescrCnv/IdDictDetDescrCnv_joboptions.py" -Py:ConfigurableDb INFO Read module info for 5557 configurables from 46 genConfDb files +Py:ConfigurableDb INFO Read module info for 5473 configurables from 60 genConfDb files Py:ConfigurableDb INFO No duplicates have been found: that's good ! EventInfoMgtInit: Got release version Athena-22.0.1 Py:IOVDbSvc.CondDB INFO Setting up conditions DB access to instance OFLP200 @@ -17,9 +17,8 @@ Py:TileInfoConf. INFO Adding TileCablingSvc to ServiceMgr Py:inputFilePeeker INFO Executing inputFilePeeker.py Py:AthFile INFO loading cache from [athfile-cache.ascii.gz]... Py:AthFile INFO loading cache from [athfile-cache.ascii.gz]... [done] -Py:AthFile INFO opening [/afs/cern.ch/atlas/maxidisk/d33/referencefiles/TileByteStream/TileByteStream-01-00-00/data18_tilecomm.00363899.calibration_tile.daq.RAW._lb0000._TileREB-ROS._0005-200ev.data]... Py:inputFilePeeker INFO stream_names not present in input bytestream file. Giving default name 'StreamRAW' -Py:inputFilePeeker INFO Successfully filled inputFileSummary from file /afs/cern.ch/atlas/maxidisk/d33/referencefiles/TileByteStream/TileByteStream-01-00-00/data18_tilecomm.00363899.calibration_tile.daq.RAW._lb0000._TileREB-ROS._0005-200ev.data +Py:inputFilePeeker INFO Successfully filled inputFileSummary from file /cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/TileByteStream/TileByteStream-01-00-00/data18_tilecomm.00363899.calibration_tile.daq.RAW._lb0000._TileREB-ROS._0005-200ev.data Py:inputFilePeeker INFO Extracted streams ['StreamRAW'] from input file Py:TileConditions_jobOptions.py INFO Forcing RUN2a (2018) cabling for run 363899 with geometry ATLAS-R2-2016-01-00-01 Py:TileConditions_jobOptions.py INFO Adjusting TileInfo for 7 samples @@ -35,8 +34,8 @@ ApplicationMgr INFO Updating Gaudi::PluginService::SetDebug(level) to leve ApplicationMgr INFO Updating Gaudi::PluginService::SetDebug(level) to level= 'PluginDebugLevel':0 ApplicationMgr SUCCESS ==================================================================================================================================== - Welcome to ApplicationMgr (GaudiCoreSvc v30r4) - running on lxplus075.cern.ch on Thu Nov 8 04:14:15 2018 + Welcome to ApplicationMgr (GaudiCoreSvc v30r5) + running on lxplus071.cern.ch on Thu Dec 6 04:15:26 2018 ==================================================================================================================================== ApplicationMgr INFO Successfully loaded modules : AthenaServices ApplicationMgr INFO Application Manager Configured successfully @@ -53,8 +52,8 @@ PoolSvc INFO io_register[PoolSvc](xmlcatalog_file:PoolFileCatalog.x PoolSvc INFO Set connectionsvc retry/timeout/IDLE timeout to 'ConnectionRetrialPeriod':300/ 'ConnectionRetrialTimeOut':3600/ 'ConnectionTimeOut':5 seconds with connection cleanup disabled PoolSvc INFO Frontier compression level set to 5 DBReplicaSvc INFO Frontier server at (serverurl=http://atlasfrontier-local.cern.ch:8000/atlr)(serverurl=http://atlasfrontier-ai.cern.ch:8000/atlr)(serverurl=http://lcgft-atlas.gridpp.rl.ac.uk:3128/frontierATLAS)(serverurl=http://ccfrontier.in2p3.fr:23128/ccin2p3-AtlasFrontier)(proxyurl=http://ca-proxy.cern.ch:3128)(proxyurl=http://ca-proxy-meyrin.cern.ch:3128)(proxyurl=http://ca-proxy-wigner.cern.ch:3128)(proxyurl=http://atlasbpfrontier.cern.ch:3127)(proxyurl=http://atlasbpfrontier.fnal.gov:3127) will be considered for COOL data -DBReplicaSvc INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/dbreplica.config -DBReplicaSvc INFO Total of 10 servers found for host lxplus075.cern.ch [ATLF ATLAS_COOLPROD atlas_dd ATLAS_CONFIG INT8R INTR ATONR_COOL ATONR_CONF DEVDB11 ATLF ] +DBReplicaSvc INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/dbreplica.config +DBReplicaSvc INFO Total of 10 servers found for host lxplus071.cern.ch [ATLF ATLAS_COOLPROD atlas_dd ATLAS_CONFIG INT8R INTR ATONR_COOL ATONR_CONF DEVDB11 ATLF ] PoolSvc INFO Successfully setup replica sorting algorithm PoolSvc INFO Setting up APR FileCatalog and Streams PoolSvc WARNING Unable to locate catalog for prfile:poolcond/PoolCat_oflcond.xml check your ATLAS_POOLCOND_PATH and DATAPATH variables @@ -68,7 +67,7 @@ IOVDbSvc INFO Opened read transaction for POOL PersistencySvc IOVDbSvc INFO Only 5 POOL conditions files will be open at once IOVDbSvc INFO Cache alignment will be done in 3 slices IOVDbSvc INFO Global tag: OFLCOND-RUN12-SDR-35 set from joboptions -IOVDbSvc INFO Read from meta data only for folder /TagInfo +IOVDbFolder INFO Read from meta data only for folder /TagInfo IOVDbSvc INFO Initialised with 3 connections and 14 folders IOVDbSvc INFO Service IOVDbSvc initialised successfully ByteStreamAddre... INFO Initializing ByteStreamAddressProviderSvc - package version ByteStreamCnvSvcBase-00-00-00 @@ -86,7 +85,7 @@ ByteStreamAddre... INFO Topo Processor RoI = 0x81, 0x91 ByteStreamAddre... INFO -- Will fill Store with id = 0 IOVDbSvc INFO preLoadAddresses: Removing folder /TagInfo. It should only be in the file meta data and was not found. IOVDbSvc INFO Opening COOL connection for COOLOFL_LAR/OFLP200 -ClassIDSvc INFO getRegistryEntries: read 3114 CLIDRegistry entries for module ALL +ClassIDSvc INFO getRegistryEntries: read 3116 CLIDRegistry entries for module ALL IOVSvc INFO No IOVSvcTool associated with store "StoreGateSvc" IOVSvcTool INFO IOVRanges will be checked at every Event IOVDbSvc INFO Opening COOL connection for COOLOFL_TILE/OFLP200 @@ -194,7 +193,7 @@ EndcapDMConstru... INFO Start building EC electronics geometry multi-layered version of absorbers activated, mlabs == 1 ================================================ EndcapDMConstru... INFO Start building EC electronics geometry -GeoModelSvc INFO GeoModelSvc.LArDetectorToolNV SZ= 29096Kb Time = 1.6S +GeoModelSvc INFO GeoModelSvc.LArDetectorToolNV SZ= 28544Kb Time = 1.55S GeoModelSvc.Til... INFO Entering TileDetectorTool::create() TileDddbManager INFO m_tag = ATLAS-R2-2016-01-00-01 TileDddbManager INFO n_tiglob = 5 @@ -206,7 +205,7 @@ TileDddbManager INFO n_tileSwitches = 1 ClassIDSvc INFO getRegistryEntries: read 213 CLIDRegistry entries for module ALL CaloIDHelper_ID... INFO in createObj: creating a TileID helper object in the detector store AtlasDetectorID INFO initialize_from_dictionary - OK -TileNeighbour INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/TileNeighbour_reduced.txt +TileNeighbour INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/TileNeighbour_reduced.txt TileHWIDDetDesc... INFO in createObj: creating a TileHWID helper object in the detector store TileHWID INFO initialize_from_dictionary AtlasDetectorID INFO initialize_from_dictionary - OK @@ -218,9 +217,9 @@ CaloIDHelper_ID... INFO in createObj: creating a LArHEC_ID helper object in th AtlasDetectorID INFO initialize_from_dictionary - OK CaloIDHelper_ID... INFO in createObj: creating a LArFCAL_ID helper object in the detector store AtlasDetectorID INFO initialize_from_dictionary - OK -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCal2DNeighbors-April2011.txt -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCal3DNeighborsNext-April2011.txt -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCal3DNeighborsPrev-April2011.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCal2DNeighbors-April2011.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCal3DNeighborsNext-April2011.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCal3DNeighborsPrev-April2011.txt CaloIDHelper_ID... INFO in createObj: creating a LArMiniFCAL_ID helper object in the detector store AtlasDetectorID INFO initialize_from_dictionary - OK LArMiniFCAL_ID INFO initialize_from_dict - LArCalorimeter dictionary does NOT contain miniFCAL description. Unable to initialize LArMiniFCAL_ID. @@ -255,7 +254,7 @@ GeoModelSvc.Til... INFO Global positioning of barrel with rotation (0,0,0)) a GeoModelSvc.Til... INFO Global positioning of positive ext.barrel with rotation (0,0,0)) and translation (0,0,0) CLHEP::cm GeoModelSvc.Til... INFO Global positioning of negative ext.barrel with rotation (0,0,0)) and translation (0,0,1) CLHEP::cm TileDetDescrMan... INFO Entering create_elements() -GeoModelSvc INFO GeoModelSvc.TileDetectorTool SZ= 4176Kb Time = 1.74S +GeoModelSvc INFO GeoModelSvc.TileDetectorTool SZ= 5196Kb Time = 1.65S ClassIDSvc INFO getRegistryEntries: read 65 CLIDRegistry entries for module ALL TileInfoLoader INFO Initializing....TileInfoLoader TileInfoLoader INFO New ATLAS geometry detected: ATLAS-R2-2016-01-00-01 (010001) version 10001 @@ -277,11 +276,11 @@ TileInfoLoader INFO Sampling fraction for E2 cells 1/107 TileInfoLoader INFO Sampling fraction for E3 cells 1/97 TileInfoLoader INFO Sampling fraction for E4 cells 1/75 TileInfoLoader INFO Sampling fraction for E4' cells 1/75 -TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulsehi_physics.dat -TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulselo_physics.dat -TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulse_adder_tower_physics.dat -TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulse_adder_muonRcv_physics.dat -TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulse_adder_muon_physics.dat +TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulsehi_physics.dat +TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulselo_physics.dat +TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulse_adder_tower_physics.dat +TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulse_adder_muonRcv_physics.dat +TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulse_adder_muon_physics.dat CaloIDHelper_ID... INFO in createObj: creating a CaloLVL1_ID helper object in the detector store CaloLVL1_ID INFO initialize_from_dictionary AtlasDetectorID INFO initialize_from_dictionary - OK @@ -290,12 +289,12 @@ TileCablingSvc INFO Cabling for RUN2a (2018) ATLAS geometry is set via job TileCablingSvc INFO Setting Cabling type to 5 TileInfoLoader INFO Placed TileInfo object in the detector store. ToolSvc.TileBad... INFO Creating TileCondProxyCool(ToolSvc.TileBadChanLegacyTool.TileCondProxyCool_OnlBch) for folder: "/TILE/ONL01/STATUS/ADC" -IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileCondProxyCool<TileCalibDrawerBch>[0x80a0b00]+7f9fd2c9a64c bound to CondAttrListCollection[/TILE/ONL01/STATUS/ADC] +IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileCondProxyCool<TileCalibDrawerBch>[0xb4a6b00]+7f4dc1e81a54 bound to CondAttrListCollection[/TILE/ONL01/STATUS/ADC] ToolSvc.TileBad... INFO Creating TileCondProxyCool(ToolSvc.TileBadChanLegacyTool.TileCondProxyCool_OflBch) for folder: "/TILE/OFL02/STATUS/ADC" -IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileCondProxyCool<TileCalibDrawerBch>[0x80a4200]+7f9fd2c9a64c bound to CondAttrListCollection[/TILE/OFL02/STATUS/ADC] +IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileCondProxyCool<TileCalibDrawerBch>[0xb4a8c00]+7f4dc1e81a54 bound to CondAttrListCollection[/TILE/OFL02/STATUS/ADC] ToolSvc.TileBad... INFO ProxyOnlBch and ProxyOflBch will be used for bad channel status -IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileBadChanLegacyTool[0x18aa4000]+7f9fd2a467ce bound to /TILE/ONL01/STATUS/ADC -IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileBadChanLegacyTool[0x18aa4000]+7f9fd2a467ce bound to /TILE/OFL02/STATUS/ADC +IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileBadChanLegacyTool[0x18dc8000]+7f4dc1c9bc6e bound to /TILE/ONL01/STATUS/ADC +IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileBadChanLegacyTool[0x18dc8000]+7f4dc1c9bc6e bound to /TILE/OFL02/STATUS/ADC AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00 ClassIDSvc INFO getRegistryEntries: read 265 CLIDRegistry entries for module ALL CondInputLoader INFO Initializing CondInputLoader... @@ -341,7 +340,7 @@ TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCond TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OnlEms) for folder: "/TILE/OFL02/CALIB/EMS" TileSampleNoise... INFO Creating TileCondProxyCool(TileSampleNoiseCondAlg.TileCondProxyCool_NoiseSample) for folder: "/TILE/OFL02/NOISE/SAMPLE" TileTimingCondA... INFO Creating TileCondProxyCool(TileTimingCondAlg.TileCondProxyCool_AdcOffset) for folder: "/TILE/OFL02/TIME/CHANNELOFFSET/PHY" -ClassIDSvc INFO getRegistryEntries: read 3798 CLIDRegistry entries for module ALL +ClassIDSvc INFO getRegistryEntries: read 3930 CLIDRegistry entries for module ALL PyComponentMgr INFO Initializing PyComponentMgr... Finalizer INFO Initializing Finalizer... HistogramPersis...WARNING Histograms saving not required. @@ -350,7 +349,7 @@ ByteStreamInputSvc INFO Initializing ByteStreamInputSvc - package version Byte EventSelector INFO reinitialization... AthenaEventLoopMgr INFO Setup EventSelector service EventSelector ApplicationMgr INFO Application Manager Initialized successfully -ByteStreamInputSvc INFO Picked valid file: /afs/cern.ch/atlas/maxidisk/d33/referencefiles/TileByteStream/TileByteStream-01-00-00/data18_tilecomm.00363899.calibration_tile.daq.RAW._lb0000._TileREB-ROS._0005-200ev.data +ByteStreamInputSvc INFO Picked valid file: /cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/TileByteStream/TileByteStream-01-00-00/data18_tilecomm.00363899.calibration_tile.daq.RAW._lb0000._TileREB-ROS._0005-200ev.data ClassIDSvc INFO getRegistryEntries: read 629 CLIDRegistry entries for module ALL CondInputLoader INFO created CondCont<CondAttrListCollection> with key 'ConditionStore+/TILE/OFL02/CALIB/CES' CondInputLoader INFO created CondCont<CondAttrListCollection> with key 'ConditionStore+/TILE/OFL02/CALIB/CIS/FIT/LIN' @@ -374,23 +373,21 @@ EventInfoByteSt... INFO IsCalibration : 0 EventInfoByteSt... INFO EventContext not valid AthenaEventLoopMgr INFO ===>>> start of run 363899 <<<=== IOVDbSvc INFO Opening COOL connection for COOLOFL_LAR/OFLP200 -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to LARAlign-IOVDEP-00 for folder /LAR/Align -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to LArCellPositionShift-ideal for folder /LAR/LArCellPositionShift +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to LARAlign-IOVDEP-00 for folder /LAR/Align +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to LArCellPositionShift-ideal for folder /LAR/LArCellPositionShift IOVDbSvc INFO Disconnecting from COOLOFL_LAR/OFLP200 IOVDbSvc INFO Opening COOL connection for COOLOFL_TILE/OFLP200 -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCes-SIM-06 for folder /TILE/OFL02/CALIB/CES -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCisFitLin-COM-00 for folder /TILE/OFL02/CALIB/CIS/FIT/LIN -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCisFitNln-COM-00 for folder /TILE/OFL02/CALIB/CIS/FIT/NLN -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibEms-COM-00 for folder /TILE/OFL02/CALIB/EMS -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasFiber-000-00 for folder /TILE/OFL02/CALIB/LAS/FIBER -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasLin-COM-00 for folder /TILE/OFL02/CALIB/LAS/LIN -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasNln-COM-00 for folder /TILE/OFL02/CALIB/LAS/NLN -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02NoiseSample-TwoGauss-19 for folder /TILE/OFL02/NOISE/SAMPLE -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02StatusAdc-IOVDEP-03 for folder /TILE/OFL02/STATUS/ADC -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02TimeChanneloffsetPhy-000-00 for folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCes-SIM-06 for folder /TILE/OFL02/CALIB/CES +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCisFitLin-COM-00 for folder /TILE/OFL02/CALIB/CIS/FIT/LIN +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCisFitNln-COM-00 for folder /TILE/OFL02/CALIB/CIS/FIT/NLN +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibEms-COM-00 for folder /TILE/OFL02/CALIB/EMS +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasFiber-000-00 for folder /TILE/OFL02/CALIB/LAS/FIBER +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasLin-COM-00 for folder /TILE/OFL02/CALIB/LAS/LIN +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasNln-COM-00 for folder /TILE/OFL02/CALIB/LAS/NLN +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02NoiseSample-TwoGauss-19 for folder /TILE/OFL02/NOISE/SAMPLE +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02StatusAdc-IOVDEP-03 for folder /TILE/OFL02/STATUS/ADC +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02TimeChanneloffsetPhy-000-00 for folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY IOVDbSvc INFO Disconnecting from COOLOFL_TILE/OFLP200 -DbSession INFO Open DbSession -Domain[ROOT_All] INFO > Access DbDomain READ [ROOT_All] Domain[ROOT_All] INFO -> Access DbDatabase READ [ROOT_All] 06C9EAE8-6F5B-E011-BAAA-003048F0E7AC Domain[ROOT_All] INFO /cvmfs/atlas-condb.cern.ch/repo/conditions/cond09/cond09_mc.000029.gen.COND/cond09_mc.000029.gen.COND._0002.pool.root RootDatabase.open INFO /cvmfs/atlas-condb.cern.ch/repo/conditions/cond09/cond09_mc.000029.gen.COND/cond09_mc.000029.gen.COND._0002.pool.root File version:52200 @@ -412,12 +409,12 @@ CaloIDHelper_ID... INFO in createObj: creating a LArHEC_SuperCell_ID helper ob AtlasDetectorID INFO initialize_from_dictionary - OK CaloIDHelper_ID... INFO in createObj: creating a LArFCAL_SuperCell_ID helper object in the detector store AtlasDetectorID INFO initialize_from_dictionary - OK -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells2DNeighborsNew-April2014.txt -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells3DNeighborsNextNew-April2014.txt -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells3DNeighborsPrevNew-April2014.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells2DNeighborsNew-April2014.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells3DNeighborsNextNew-April2014.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells3DNeighborsPrevNew-April2014.txt CaloIDHelper_ID... INFO in createObj: creating a Tile_SuperCell_ID helper object in the detector store AtlasDetectorID INFO initialize_from_dictionary - OK -TileNeighbour INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/TileSuperCellNeighbour.txt +TileNeighbour INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/TileSuperCellNeighbour.txt AtlasDetectorID INFO initialize_from_dictionary - OK CaloIdMgrDetDes... INFO Finished CaloIdMgrDetDes... INFO Initializing CaloIdMgr from values in CaloIdMgrDetDescrCnv @@ -448,11 +445,6 @@ ClassIDSvc INFO getRegistryEntries: read 2380 CLIDRegistry entries fo ToolSvc.TileROD... INFO TileL2Builder initialization completed ToolSvc.TileMuR... INFO Initializing TileMuRcvContByteStreamTool AthenaEventLoopMgr INFO ===>>> done processing event #18124, run #363899 1 events processed so far <<<=== -/cvmfs/atlas-co... INFO Database being retired... -Domain[ROOT_All] INFO -> Deaccess DbDatabase READ [ROOT_All] 06C9EAE8-6F5B-E011-BAAA-003048F0E7AC -/cvmfs/atlas-co... INFO Database being retired... -Domain[ROOT_All] INFO -> Deaccess DbDatabase READ [ROOT_All] 8667C6F2-1559-DE11-A611-000423D9A21A -Domain[ROOT_All] INFO > Deaccess DbDomain READ [ROOT_All] AthenaEventLoopMgr INFO ===>>> start processing event #18125, run #363899 1 events processed so far <<<=== AthenaEventLoopMgr INFO ===>>> done processing event #18125, run #363899 2 events processed so far <<<=== AthenaEventLoopMgr INFO ===>>> start processing event #18126, run #363899 2 events processed so far <<<=== @@ -653,6 +645,10 @@ AthenaEventLoopMgr INFO ===>>> start processing event #18223, run #363899 9 AthenaEventLoopMgr INFO ===>>> done processing event #18223, run #363899 100 events processed so far <<<=== TileInfoLoader INFO Handling EndRun incident TileInfoLoader INFO Removed TileInfo object from detector store. +/cvmfs/atlas-co... INFO Database being retired... +Domain[ROOT_All] INFO -> Deaccess DbDatabase READ [ROOT_All] 8667C6F2-1559-DE11-A611-000423D9A21A +/cvmfs/atlas-co... INFO Database being retired... +Domain[ROOT_All] INFO -> Deaccess DbDatabase READ [ROOT_All] 06C9EAE8-6F5B-E011-BAAA-003048F0E7AC Domain[ROOT_All] INFO > Deaccess DbDomain READ [ROOT_All] ApplicationMgr INFO Application Manager Stopped successfully IncidentProcAlg1 INFO Finalize @@ -663,23 +659,23 @@ IncidentProcAlg2 INFO Finalize EventInfoByteSt... INFO finalize PyComponentMgr INFO Finalizing PyComponentMgr... IdDictDetDescrCnv INFO in finalize -IOVDbSvc INFO Folder /LAR/Align (PoolRef) db-read 1/1 objs/chan/bytes 1/1/170 (( 0.09 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/CES (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/104912 (( 0.13 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/CIS/FIT/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/80 (( 0.09 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/CIS/FIT/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/80 (( 0.09 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/EMS (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/92 (( 0.09 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/LAS/FIBER (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/940 (( 0.08 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/LAS/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/72 (( 0.08 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/LAS/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/76 (( 0.08 ))s -IOVDbSvc INFO Folder /TILE/OFL02/NOISE/SAMPLE (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/641536 (( 0.17 ))s -IOVDbSvc INFO Folder /TILE/OFL02/STATUS/ADC (AttrListColl) db-read 1/2 objs/chan/bytes 277/277/43176 (( 5.55 ))s -IOVDbSvc INFO Folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/96 (( 1.48 ))s -IOVDbSvc INFO Folder /TILE/ONL01/STATUS/ADC (AttrListColl) db-read 1/2 objs/chan/bytes 277/277/76 (( 0.13 ))s -IOVDbSvc INFO Folder /LAR/LArCellPositionShift (PoolRef) db-read 1/1 objs/chan/bytes 1/1/195 (( 0.04 ))s -IOVDbSvc INFO Total payload read from COOL: 791501 bytes in (( 8.09 ))s +IOVDbFolder INFO Folder /LAR/Align (PoolRef) db-read 1/1 objs/chan/bytes 1/1/170 (( 0.26 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CES (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/104912 (( 0.25 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/80 (( 0.05 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/80 (( 0.05 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/EMS (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/92 (( 0.05 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/FIBER (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/940 (( 0.05 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/72 (( 0.05 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/76 (( 0.06 ))s +IOVDbFolder INFO Folder /TILE/OFL02/NOISE/SAMPLE (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/641536 (( 0.07 ))s +IOVDbFolder INFO Folder /TILE/OFL02/STATUS/ADC (AttrListColl) db-read 1/2 objs/chan/bytes 277/277/43176 (( 0.05 ))s +IOVDbFolder INFO Folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/96 (( 0.06 ))s +IOVDbFolder INFO Folder /TILE/ONL01/STATUS/ADC (AttrListColl) db-read 1/2 objs/chan/bytes 277/277/76 (( 0.02 ))s +IOVDbFolder INFO Folder /LAR/LArCellPositionShift (PoolRef) db-read 1/1 objs/chan/bytes 1/1/195 (( 0.02 ))s +IOVDbSvc INFO bytes in (( 1.01 ))s IOVDbSvc INFO Connection sqlite://;schema=mycool.db;dbname=OFLP200 : nConnect: 0 nFolders: 0 ReadTime: (( 0.00 ))s -IOVDbSvc INFO Connection COOLOFL_LAR/OFLP200 : nConnect: 2 nFolders: 2 ReadTime: (( 0.13 ))s -IOVDbSvc INFO Connection COOLOFL_TILE/OFLP200 : nConnect: 2 nFolders: 11 ReadTime: (( 7.96 ))s +IOVDbSvc INFO Connection COOLOFL_LAR/OFLP200 : nConnect: 2 nFolders: 2 ReadTime: (( 0.28 ))s +IOVDbSvc INFO Connection COOLOFL_TILE/OFLP200 : nConnect: 2 nFolders: 11 ReadTime: (( 0.74 ))s TileInfoLoader INFO TileInfoLoader::finalize() AthDictLoaderSvc INFO in finalize... ToolSvc INFO Removing all tools created by ToolSvc @@ -689,9 +685,9 @@ ToolSvc.TileROD... INFO Finalizing *****Chrono***** INFO **************************************************************************************************** *****Chrono***** INFO The Final CPU consumption ( Chrono ) Table (ordered) *****Chrono***** INFO **************************************************************************************************** -cObjR_ALL INFO Time User : Tot= 0.83 [s] Ave/Min/Max=0.415(+-0.395)/ 0.02/ 0.81 [s] #= 2 -cObj_ALL INFO Time User : Tot= 1.11 [s] Ave/Min/Max=0.074(+- 0.23)/ 0/ 0.92 [s] #= 15 -ChronoStatSvc INFO Time User : Tot= 25.8 [s] #= 1 +cObjR_ALL INFO Time User : Tot= 0.82 [s] Ave/Min/Max= 0.41(+- 0.39)/ 0.02/ 0.8 [s] #= 2 +cObj_ALL INFO Time User : Tot= 1.08 [s] Ave/Min/Max=0.072(+-0.223)/ 0/ 0.89 [s] #= 15 +ChronoStatSvc INFO Time User : Tot= 23.9 [s] #= 1 *****Chrono***** INFO **************************************************************************************************** ChronoStatSvc.f... INFO Service finalized successfully ApplicationMgr INFO Application Manager Finalized successfully diff --git a/TileCalorimeter/TileSvc/TileByteStream/share/TileRawChannelContByteStreamCnv_test.ref b/TileCalorimeter/TileSvc/TileByteStream/share/TileRawChannelContByteStreamCnv_test.ref index 337a715ddff7e688a97de331124392b90b189061..c92071db55f4ea9155dc43b7797be7a8e95dd889 100644 --- a/TileCalorimeter/TileSvc/TileByteStream/share/TileRawChannelContByteStreamCnv_test.ref +++ b/TileCalorimeter/TileSvc/TileByteStream/share/TileRawChannelContByteStreamCnv_test.ref @@ -1,14 +1,14 @@ -Thu Nov 8 05:42:29 CET 2018 +Thu Dec 6 04:40:03 CET 2018 Preloading tcmalloc_minimal.so Py:Athena INFO including file "AthenaCommon/Preparation.py" -Py:Athena INFO using release [AthenaWorkDir-22.0.1] [x86_64-slc6-gcc62-dbg] [atlas-work3/93f05f9c910] -- built on [2018-11-08T0523] +Py:Athena INFO using release [AthenaWorkDir-22.0.1] [x86_64-slc6-gcc62-dbg] [atlas-work3/fa0fd6d0989] -- built on [2018-12-06T0025] Py:Athena INFO including file "AthenaCommon/Atlas.UnixStandardJob.py" Py:Athena INFO executing ROOT6Setup Py:Athena INFO including file "AthenaCommon/Execution.py" Py:Athena INFO including file "TileByteStream/TileRawChannelContByteStreamCnv_test.py" [?1034hSetGeometryVersion.py obtained major release version 22 Py:Athena INFO including file "IdDictDetDescrCnv/IdDictDetDescrCnv_joboptions.py" -Py:ConfigurableDb INFO Read module info for 5557 configurables from 46 genConfDb files +Py:ConfigurableDb INFO Read module info for 5473 configurables from 60 genConfDb files Py:ConfigurableDb INFO No duplicates have been found: that's good ! EventInfoMgtInit: Got release version Athena-22.0.1 Py:IOVDbSvc.CondDB INFO Setting up conditions DB access to instance OFLP200 @@ -34,8 +34,8 @@ ApplicationMgr INFO Updating Gaudi::PluginService::SetDebug(level) to leve ApplicationMgr INFO Updating Gaudi::PluginService::SetDebug(level) to level= 'PluginDebugLevel':0 ApplicationMgr SUCCESS ==================================================================================================================================== - Welcome to ApplicationMgr (GaudiCoreSvc v30r4) - running on lxplus075.cern.ch on Thu Nov 8 05:42:53 2018 + Welcome to ApplicationMgr (GaudiCoreSvc v30r5) + running on lxplus071.cern.ch on Thu Dec 6 04:40:28 2018 ==================================================================================================================================== ApplicationMgr INFO Successfully loaded modules : AthenaServices ApplicationMgr INFO Application Manager Configured successfully @@ -52,8 +52,8 @@ PoolSvc INFO io_register[PoolSvc](xmlcatalog_file:PoolFileCatalog.x PoolSvc INFO Set connectionsvc retry/timeout/IDLE timeout to 'ConnectionRetrialPeriod':300/ 'ConnectionRetrialTimeOut':3600/ 'ConnectionTimeOut':5 seconds with connection cleanup disabled PoolSvc INFO Frontier compression level set to 5 DBReplicaSvc INFO Frontier server at (serverurl=http://atlasfrontier-local.cern.ch:8000/atlr)(serverurl=http://atlasfrontier-ai.cern.ch:8000/atlr)(serverurl=http://lcgft-atlas.gridpp.rl.ac.uk:3128/frontierATLAS)(serverurl=http://ccfrontier.in2p3.fr:23128/ccin2p3-AtlasFrontier)(proxyurl=http://ca-proxy.cern.ch:3128)(proxyurl=http://ca-proxy-meyrin.cern.ch:3128)(proxyurl=http://ca-proxy-wigner.cern.ch:3128)(proxyurl=http://atlasbpfrontier.cern.ch:3127)(proxyurl=http://atlasbpfrontier.fnal.gov:3127) will be considered for COOL data -DBReplicaSvc INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/dbreplica.config -DBReplicaSvc INFO Total of 10 servers found for host lxplus075.cern.ch [ATLF ATLAS_COOLPROD atlas_dd ATLAS_CONFIG INT8R INTR ATONR_COOL ATONR_CONF DEVDB11 ATLF ] +DBReplicaSvc INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/dbreplica.config +DBReplicaSvc INFO Total of 10 servers found for host lxplus071.cern.ch [ATLF ATLAS_COOLPROD atlas_dd ATLAS_CONFIG INT8R INTR ATONR_COOL ATONR_CONF DEVDB11 ATLF ] PoolSvc INFO Successfully setup replica sorting algorithm PoolSvc INFO Setting up APR FileCatalog and Streams PoolSvc WARNING Unable to locate catalog for prfile:poolcond/PoolCat_oflcond.xml check your ATLAS_POOLCOND_PATH and DATAPATH variables @@ -67,7 +67,7 @@ IOVDbSvc INFO Opened read transaction for POOL PersistencySvc IOVDbSvc INFO Only 5 POOL conditions files will be open at once IOVDbSvc INFO Cache alignment will be done in 3 slices IOVDbSvc INFO Global tag: OFLCOND-RUN12-SDR-35 set from joboptions -IOVDbSvc INFO Read from meta data only for folder /TagInfo +IOVDbFolder INFO Read from meta data only for folder /TagInfo IOVDbSvc INFO Initialised with 3 connections and 14 folders IOVDbSvc INFO Service IOVDbSvc initialised successfully ByteStreamAddre... INFO Initializing ByteStreamAddressProviderSvc - package version ByteStreamCnvSvcBase-00-00-00 @@ -85,7 +85,7 @@ ByteStreamAddre... INFO Topo Processor RoI = 0x81, 0x91 ByteStreamAddre... INFO -- Will fill Store with id = 0 IOVDbSvc INFO preLoadAddresses: Removing folder /TagInfo. It should only be in the file meta data and was not found. IOVDbSvc INFO Opening COOL connection for COOLOFL_LAR/OFLP200 -ClassIDSvc INFO getRegistryEntries: read 3114 CLIDRegistry entries for module ALL +ClassIDSvc INFO getRegistryEntries: read 3116 CLIDRegistry entries for module ALL IOVSvc INFO No IOVSvcTool associated with store "StoreGateSvc" IOVSvcTool INFO IOVRanges will be checked at every Event IOVDbSvc INFO Opening COOL connection for COOLOFL_TILE/OFLP200 @@ -193,7 +193,7 @@ EndcapDMConstru... INFO Start building EC electronics geometry multi-layered version of absorbers activated, mlabs == 1 ================================================ EndcapDMConstru... INFO Start building EC electronics geometry -GeoModelSvc INFO GeoModelSvc.LArDetectorToolNV SZ= 29096Kb Time = 1.6S +GeoModelSvc INFO GeoModelSvc.LArDetectorToolNV SZ= 28544Kb Time = 1.61S GeoModelSvc.Til... INFO Entering TileDetectorTool::create() TileDddbManager INFO m_tag = ATLAS-R2-2016-01-00-01 TileDddbManager INFO n_tiglob = 5 @@ -205,7 +205,7 @@ TileDddbManager INFO n_tileSwitches = 1 ClassIDSvc INFO getRegistryEntries: read 213 CLIDRegistry entries for module ALL CaloIDHelper_ID... INFO in createObj: creating a TileID helper object in the detector store AtlasDetectorID INFO initialize_from_dictionary - OK -TileNeighbour INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/TileNeighbour_reduced.txt +TileNeighbour INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/TileNeighbour_reduced.txt TileHWIDDetDesc... INFO in createObj: creating a TileHWID helper object in the detector store TileHWID INFO initialize_from_dictionary AtlasDetectorID INFO initialize_from_dictionary - OK @@ -217,9 +217,9 @@ CaloIDHelper_ID... INFO in createObj: creating a LArHEC_ID helper object in th AtlasDetectorID INFO initialize_from_dictionary - OK CaloIDHelper_ID... INFO in createObj: creating a LArFCAL_ID helper object in the detector store AtlasDetectorID INFO initialize_from_dictionary - OK -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCal2DNeighbors-April2011.txt -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCal3DNeighborsNext-April2011.txt -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCal3DNeighborsPrev-April2011.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCal2DNeighbors-April2011.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCal3DNeighborsNext-April2011.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCal3DNeighborsPrev-April2011.txt CaloIDHelper_ID... INFO in createObj: creating a LArMiniFCAL_ID helper object in the detector store AtlasDetectorID INFO initialize_from_dictionary - OK LArMiniFCAL_ID INFO initialize_from_dict - LArCalorimeter dictionary does NOT contain miniFCAL description. Unable to initialize LArMiniFCAL_ID. @@ -254,7 +254,7 @@ GeoModelSvc.Til... INFO Global positioning of barrel with rotation (0,0,0)) a GeoModelSvc.Til... INFO Global positioning of positive ext.barrel with rotation (0,0,0)) and translation (0,0,0) CLHEP::cm GeoModelSvc.Til... INFO Global positioning of negative ext.barrel with rotation (0,0,0)) and translation (0,0,1) CLHEP::cm TileDetDescrMan... INFO Entering create_elements() -GeoModelSvc INFO GeoModelSvc.TileDetectorTool SZ= 5200Kb Time = 2S +GeoModelSvc INFO GeoModelSvc.TileDetectorTool SZ= 5196Kb Time = 1.72S ClassIDSvc INFO getRegistryEntries: read 65 CLIDRegistry entries for module ALL TileInfoLoader INFO Initializing....TileInfoLoader TileInfoLoader INFO New ATLAS geometry detected: ATLAS-R2-2016-01-00-01 (010001) version 10001 @@ -276,11 +276,11 @@ TileInfoLoader INFO Sampling fraction for E2 cells 1/107 TileInfoLoader INFO Sampling fraction for E3 cells 1/97 TileInfoLoader INFO Sampling fraction for E4 cells 1/75 TileInfoLoader INFO Sampling fraction for E4' cells 1/75 -TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulsehi_physics.dat -TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulselo_physics.dat -TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulse_adder_tower_physics.dat -TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulse_adder_muonRcv_physics.dat -TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulse_adder_muon_physics.dat +TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulsehi_physics.dat +TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulselo_physics.dat +TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulse_adder_tower_physics.dat +TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulse_adder_muonRcv_physics.dat +TileInfoLoader INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/pulse_adder_muon_physics.dat CaloIDHelper_ID... INFO in createObj: creating a CaloLVL1_ID helper object in the detector store CaloLVL1_ID INFO initialize_from_dictionary AtlasDetectorID INFO initialize_from_dictionary - OK @@ -289,12 +289,12 @@ TileCablingSvc INFO Cabling for RUN2 (2014-2017) ATLAS geometry is set via TileCablingSvc INFO Setting Cabling type to 4 TileInfoLoader INFO Placed TileInfo object in the detector store. ToolSvc.TileBad... INFO Creating TileCondProxyCool(ToolSvc.TileBadChanLegacyTool.TileCondProxyCool_OnlBch) for folder: "/TILE/ONL01/STATUS/ADC" -IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileCondProxyCool<TileCalibDrawerBch>[0x8bdab00]+7fd05fddd64c bound to CondAttrListCollection[/TILE/ONL01/STATUS/ADC] +IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileCondProxyCool<TileCalibDrawerBch>[0xbe55600]+7f7296659a54 bound to CondAttrListCollection[/TILE/ONL01/STATUS/ADC] ToolSvc.TileBad... INFO Creating TileCondProxyCool(ToolSvc.TileBadChanLegacyTool.TileCondProxyCool_OflBch) for folder: "/TILE/OFL02/STATUS/ADC" -IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileCondProxyCool<TileCalibDrawerBch>[0x8bde200]+7fd05fddd64c bound to CondAttrListCollection[/TILE/OFL02/STATUS/ADC] +IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileCondProxyCool<TileCalibDrawerBch>[0xbe56c00]+7f7296659a54 bound to CondAttrListCollection[/TILE/OFL02/STATUS/ADC] ToolSvc.TileBad... INFO ProxyOnlBch and ProxyOflBch will be used for bad channel status -IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileBadChanLegacyTool[0x195da000]+7fd05fb897ce bound to /TILE/ONL01/STATUS/ADC -IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileBadChanLegacyTool[0x195da000]+7fd05fb897ce bound to /TILE/OFL02/STATUS/ADC +IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileBadChanLegacyTool[0x1979b000]+7f7296473c6e bound to /TILE/ONL01/STATUS/ADC +IOVSvcTool INFO Still in initialize phase, not tiggering callback for TileBadChanLegacyTool[0x1979b000]+7f7296473c6e bound to /TILE/OFL02/STATUS/ADC AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00 ClassIDSvc INFO getRegistryEntries: read 265 CLIDRegistry entries for module ALL CondInputLoader INFO Initializing CondInputLoader... @@ -340,7 +340,7 @@ TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCond TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OnlEms) for folder: "/TILE/OFL02/CALIB/EMS" TileSampleNoise... INFO Creating TileCondProxyCool(TileSampleNoiseCondAlg.TileCondProxyCool_NoiseSample) for folder: "/TILE/OFL02/NOISE/SAMPLE" TileTimingCondA... INFO Creating TileCondProxyCool(TileTimingCondAlg.TileCondProxyCool_AdcOffset) for folder: "/TILE/OFL02/TIME/CHANNELOFFSET/PHY" -ClassIDSvc INFO getRegistryEntries: read 3798 CLIDRegistry entries for module ALL +ClassIDSvc INFO getRegistryEntries: read 3930 CLIDRegistry entries for module ALL PyComponentMgr INFO Initializing PyComponentMgr... Finalizer INFO Initializing Finalizer... HistogramPersis...WARNING Histograms saving not required. @@ -373,23 +373,21 @@ EventInfoByteSt... INFO IsCalibration : 0 EventInfoByteSt... INFO EventContext not valid AthenaEventLoopMgr INFO ===>>> start of run 204073 <<<=== IOVDbSvc INFO Opening COOL connection for COOLOFL_LAR/OFLP200 -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to LARAlign-IOVDEP-00 for folder /LAR/Align -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to LArCellPositionShift-ideal for folder /LAR/LArCellPositionShift +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to LARAlign-IOVDEP-00 for folder /LAR/Align +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to LArCellPositionShift-ideal for folder /LAR/LArCellPositionShift IOVDbSvc INFO Disconnecting from COOLOFL_LAR/OFLP200 IOVDbSvc INFO Opening COOL connection for COOLOFL_TILE/OFLP200 -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCes-SIM-06 for folder /TILE/OFL02/CALIB/CES -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCisFitLin-COM-00 for folder /TILE/OFL02/CALIB/CIS/FIT/LIN -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCisFitNln-COM-00 for folder /TILE/OFL02/CALIB/CIS/FIT/NLN -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibEms-COM-00 for folder /TILE/OFL02/CALIB/EMS -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasFiber-000-00 for folder /TILE/OFL02/CALIB/LAS/FIBER -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasLin-COM-00 for folder /TILE/OFL02/CALIB/LAS/LIN -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasNln-COM-00 for folder /TILE/OFL02/CALIB/LAS/NLN -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02NoiseSample-TwoGauss-19 for folder /TILE/OFL02/NOISE/SAMPLE -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02StatusAdc-IOVDEP-03 for folder /TILE/OFL02/STATUS/ADC -IOVDbSvc INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02TimeChanneloffsetPhy-000-00 for folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCes-SIM-06 for folder /TILE/OFL02/CALIB/CES +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCisFitLin-COM-00 for folder /TILE/OFL02/CALIB/CIS/FIT/LIN +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibCisFitNln-COM-00 for folder /TILE/OFL02/CALIB/CIS/FIT/NLN +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibEms-COM-00 for folder /TILE/OFL02/CALIB/EMS +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasFiber-000-00 for folder /TILE/OFL02/CALIB/LAS/FIBER +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasLin-COM-00 for folder /TILE/OFL02/CALIB/LAS/LIN +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02CalibLasNln-COM-00 for folder /TILE/OFL02/CALIB/LAS/NLN +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02NoiseSample-TwoGauss-19 for folder /TILE/OFL02/NOISE/SAMPLE +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02StatusAdc-IOVDEP-03 for folder /TILE/OFL02/STATUS/ADC +IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to TileOfl02TimeChanneloffsetPhy-000-00 for folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY IOVDbSvc INFO Disconnecting from COOLOFL_TILE/OFLP200 -DbSession INFO Open DbSession -Domain[ROOT_All] INFO > Access DbDomain READ [ROOT_All] Domain[ROOT_All] INFO -> Access DbDatabase READ [ROOT_All] 06C9EAE8-6F5B-E011-BAAA-003048F0E7AC Domain[ROOT_All] INFO /cvmfs/atlas-condb.cern.ch/repo/conditions/cond09/cond09_mc.000029.gen.COND/cond09_mc.000029.gen.COND._0002.pool.root RootDatabase.open INFO /cvmfs/atlas-condb.cern.ch/repo/conditions/cond09/cond09_mc.000029.gen.COND/cond09_mc.000029.gen.COND._0002.pool.root File version:52200 @@ -411,12 +409,12 @@ CaloIDHelper_ID... INFO in createObj: creating a LArHEC_SuperCell_ID helper ob AtlasDetectorID INFO initialize_from_dictionary - OK CaloIDHelper_ID... INFO in createObj: creating a LArFCAL_SuperCell_ID helper object in the detector store AtlasDetectorID INFO initialize_from_dictionary - OK -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells2DNeighborsNew-April2014.txt -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells3DNeighborsNextNew-April2014.txt -LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells3DNeighborsPrevNew-April2014.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells2DNeighborsNew-April2014.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells3DNeighborsNextNew-April2014.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells3DNeighborsPrevNew-April2014.txt CaloIDHelper_ID... INFO in createObj: creating a Tile_SuperCell_ID helper object in the detector store AtlasDetectorID INFO initialize_from_dictionary - OK -TileNeighbour INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-11-06T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/TileSuperCellNeighbour.txt +TileNeighbour INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-12-04T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/TileSuperCellNeighbour.txt AtlasDetectorID INFO initialize_from_dictionary - OK CaloIdMgrDetDes... INFO Finished CaloIdMgrDetDes... INFO Initializing CaloIdMgr from values in CaloIdMgrDetDescrCnv @@ -447,11 +445,6 @@ ClassIDSvc INFO getRegistryEntries: read 2380 CLIDRegistry entries fo ToolSvc.TileROD... INFO TileL2Builder initialization completed ToolSvc.TileRaw... INFO Initializing TileRawChannelContByteStreamTool AthenaEventLoopMgr INFO ===>>> done processing event #1129572, run #204073 1 events processed so far <<<=== -/cvmfs/atlas-co... INFO Database being retired... -Domain[ROOT_All] INFO -> Deaccess DbDatabase READ [ROOT_All] 06C9EAE8-6F5B-E011-BAAA-003048F0E7AC -/cvmfs/atlas-co... INFO Database being retired... -Domain[ROOT_All] INFO -> Deaccess DbDatabase READ [ROOT_All] 8667C6F2-1559-DE11-A611-000423D9A21A -Domain[ROOT_All] INFO > Deaccess DbDomain READ [ROOT_All] AthenaEventLoopMgr INFO ===>>> start processing event #1129665, run #204073 1 events processed so far <<<=== AthenaEventLoopMgr INFO ===>>> done processing event #1129665, run #204073 2 events processed so far <<<=== AthenaEventLoopMgr INFO ===>>> start processing event #1131212, run #204073 2 events processed so far <<<=== @@ -652,6 +645,10 @@ AthenaEventLoopMgr INFO ===>>> start processing event #1156351, run #204073 AthenaEventLoopMgr INFO ===>>> done processing event #1156351, run #204073 100 events processed so far <<<=== TileInfoLoader INFO Handling EndRun incident TileInfoLoader INFO Removed TileInfo object from detector store. +/cvmfs/atlas-co... INFO Database being retired... +Domain[ROOT_All] INFO -> Deaccess DbDatabase READ [ROOT_All] 06C9EAE8-6F5B-E011-BAAA-003048F0E7AC +/cvmfs/atlas-co... INFO Database being retired... +Domain[ROOT_All] INFO -> Deaccess DbDatabase READ [ROOT_All] 8667C6F2-1559-DE11-A611-000423D9A21A Domain[ROOT_All] INFO > Deaccess DbDomain READ [ROOT_All] ApplicationMgr INFO Application Manager Stopped successfully IncidentProcAlg1 INFO Finalize @@ -662,23 +659,23 @@ IncidentProcAlg2 INFO Finalize EventInfoByteSt... INFO finalize PyComponentMgr INFO Finalizing PyComponentMgr... IdDictDetDescrCnv INFO in finalize -IOVDbSvc INFO Folder /LAR/Align (PoolRef) db-read 1/1 objs/chan/bytes 1/1/170 (( 0.47 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/CES (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/103344 (( 1.22 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/CIS/FIT/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/80 (( 0.06 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/CIS/FIT/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/80 (( 0.06 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/EMS (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/92 (( 0.07 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/LAS/FIBER (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/940 (( 0.07 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/LAS/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/72 (( 0.06 ))s -IOVDbSvc INFO Folder /TILE/OFL02/CALIB/LAS/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/76 (( 0.06 ))s -IOVDbSvc INFO Folder /TILE/OFL02/NOISE/SAMPLE (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/641504 (( 0.10 ))s -IOVDbSvc INFO Folder /TILE/OFL02/STATUS/ADC (AttrListColl) db-read 1/2 objs/chan/bytes 277/277/93060 (( 0.08 ))s -IOVDbSvc INFO Folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/96 (( 0.06 ))s -IOVDbSvc INFO Folder /TILE/ONL01/STATUS/ADC (AttrListColl) db-read 1/2 objs/chan/bytes 277/277/76 (( 0.03 ))s -IOVDbSvc INFO Folder /LAR/LArCellPositionShift (PoolRef) db-read 1/1 objs/chan/bytes 1/1/195 (( 0.04 ))s -IOVDbSvc INFO Total payload read from COOL: 839785 bytes in (( 2.37 ))s +IOVDbFolder INFO Folder /LAR/Align (PoolRef) db-read 1/1 objs/chan/bytes 1/1/170 (( 0.19 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CES (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/103344 (( 0.21 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/80 (( 0.05 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/80 (( 0.05 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/EMS (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/92 (( 0.05 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/FIBER (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/940 (( 0.06 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/72 (( 0.05 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/76 (( 0.08 ))s +IOVDbFolder INFO Folder /TILE/OFL02/NOISE/SAMPLE (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/641504 (( 0.10 ))s +IOVDbFolder INFO Folder /TILE/OFL02/STATUS/ADC (AttrListColl) db-read 1/2 objs/chan/bytes 277/277/93060 (( 0.05 ))s +IOVDbFolder INFO Folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/96 (( 0.06 ))s +IOVDbFolder INFO Folder /TILE/ONL01/STATUS/ADC (AttrListColl) db-read 1/2 objs/chan/bytes 277/277/76 (( 0.02 ))s +IOVDbFolder INFO Folder /LAR/LArCellPositionShift (PoolRef) db-read 1/1 objs/chan/bytes 1/1/195 (( 0.03 ))s +IOVDbSvc INFO bytes in (( 0.99 ))s IOVDbSvc INFO Connection sqlite://;schema=mycool.db;dbname=OFLP200 : nConnect: 0 nFolders: 0 ReadTime: (( 0.00 ))s -IOVDbSvc INFO Connection COOLOFL_LAR/OFLP200 : nConnect: 2 nFolders: 2 ReadTime: (( 0.50 ))s -IOVDbSvc INFO Connection COOLOFL_TILE/OFLP200 : nConnect: 2 nFolders: 11 ReadTime: (( 1.86 ))s +IOVDbSvc INFO Connection COOLOFL_LAR/OFLP200 : nConnect: 2 nFolders: 2 ReadTime: (( 0.21 ))s +IOVDbSvc INFO Connection COOLOFL_TILE/OFLP200 : nConnect: 2 nFolders: 11 ReadTime: (( 0.78 ))s TileInfoLoader INFO TileInfoLoader::finalize() AthDictLoaderSvc INFO in finalize... ToolSvc INFO Removing all tools created by ToolSvc @@ -688,9 +685,9 @@ ToolSvc.TileROD... INFO Finalizing *****Chrono***** INFO **************************************************************************************************** *****Chrono***** INFO The Final CPU consumption ( Chrono ) Table (ordered) *****Chrono***** INFO **************************************************************************************************** -cObjR_ALL INFO Time User : Tot= 0.8 [s] Ave/Min/Max= 0.4(+- 0.39)/ 0.01/ 0.79 [s] #= 2 -cObj_ALL INFO Time User : Tot= 1.06 [s] Ave/Min/Max=0.0707(+-0.221)/ 0/ 0.88 [s] #= 15 -ChronoStatSvc INFO Time User : Tot= 44.8 [s] #= 1 +cObjR_ALL INFO Time User : Tot= 0.84 [s] Ave/Min/Max= 0.42(+- 0.4)/ 0.02/ 0.82 [s] #= 2 +cObj_ALL INFO Time User : Tot= 1.11 [s] Ave/Min/Max=0.074(+-0.231)/ 0/ 0.92 [s] #= 15 +ChronoStatSvc INFO Time User : Tot= 42.3 [s] #= 1 *****Chrono***** INFO **************************************************************************************************** ChronoStatSvc.f... INFO Service finalized successfully ApplicationMgr INFO Application Manager Finalized successfully diff --git a/Trigger/TrigAlgorithms/TrigEFMissingET/CMakeLists.txt b/Trigger/TrigAlgorithms/TrigEFMissingET/CMakeLists.txt index c1b56c0c47b7b0d5029aaad91ac4955a5be42afb..5daa44e0a50421ea4affc912f4d341b01c4118d8 100644 --- a/Trigger/TrigAlgorithms/TrigEFMissingET/CMakeLists.txt +++ b/Trigger/TrigAlgorithms/TrigEFMissingET/CMakeLists.txt @@ -18,9 +18,10 @@ atlas_depends_on_subdirs( Event/xAOD/xAODCaloEvent Event/xAOD/xAODJet Event/xAOD/xAODTrigMissingET + Event/FourMomUtils GaudiKernel LArCalorimeter/LArIdentifier - LArCalorimeter/LArCabling + LArCalorimeter/LArTools Trigger/TrigAlgorithms/TrigT2CaloCommon Trigger/TrigEvent/TrigCaloEvent Trigger/TrigEvent/TrigMissingEtEvent @@ -28,8 +29,9 @@ atlas_depends_on_subdirs( Trigger/TrigSteer/TrigInterfaces Trigger/TrigTools/TrigTimeAlgs PRIVATE - Tools/PathResolver - InnerDetector/InDetRecTools/InDetTrackSelectionTool + PhysicsAnalysis/AnalysisCommon/PATCore + PathResolver + InDetTrackSelectionTool Control/CxxUtils DetectorDescription/Identifier Event/EventKernel @@ -40,6 +42,8 @@ atlas_depends_on_subdirs( Trigger/TrigT1/TrigT1Interfaces ) # External dependencies: +find_package( FastJet ) +find_package( FastJetContrib COMPONENTS SoftKiller ConstituentSubtractor ) find_package( ROOT COMPONENTS Core Hist Matrix ) find_package( tdaq-common COMPONENTS eformat ) @@ -47,21 +51,22 @@ find_package( tdaq-common COMPONENTS eformat ) atlas_add_library( TrigEFMissingETLib TrigEFMissingET/*.h src/*.cxx PUBLIC_HEADERS TrigEFMissingET - INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - PRIVATE_INCLUDE_DIRS ${TDAQ-COMMON_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} CaloEvent CaloGeoHelpers CaloIdentifier + INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${FASTJET_INCLUDE_DIRS} + PRIVATE_INCLUDE_DIRS ${TDAQ-COMMON_INCLUDE_DIRS} ${FASTJETCONTRIB_INCLUDE_DIRS} + LINK_LIBRARIES ${ROOT_LIBRARIES} ${FASTJET_LIBRARIES} CaloEvent CaloGeoHelpers CaloIdentifier AthenaBaseComps xAODCaloEvent xAODJet xAODTrigMissingET GaudiKernel LArIdentifier TrigCaloEvent TrigMissingEtEvent TrigParticle CaloDetDescrLib - LArCablingLib TrigT2CaloCommonLib TrigInterfacesLib TrigTimeAlgsLib - InDetTrackSelectionToolLib - PRIVATE_LINK_LIBRARIES ${TDAQ-COMMON_LIBRARIES} CxxUtils Identifier + LArToolsLib TrigT2CaloCommonLib TrigInterfacesLib TrigTimeAlgsLib + PRIVATE_LINK_LIBRARIES ${TDAQ-COMMON_LIBRARIES} ${FASTJETCONTRIB_LIBRARIES} CxxUtils Identifier EventKernel xAODEventInfo JetEvent TrigMuonEvent TrigSteeringEvent - PathResolver + PathResolver PATCoreLib TrigT1Interfaces ) atlas_add_component( TrigEFMissingET src/components/*.cxx - LINK_LIBRARIES GaudiKernel TrigEFMissingETLib ) + LINK_LIBRARIES GaudiKernel TrigEFMissingETLib ${FASTJET_LIBRARIES} + PRIVATE_LINK_LIBRARIES ${FASTJETCONTRIB_LIBRARIES} +) # Install files from the package: atlas_install_python_modules( python/*.py ) diff --git a/Trigger/TrigAlgorithms/TrigEFMissingET/TrigEFMissingET/EFMissingET.h b/Trigger/TrigAlgorithms/TrigEFMissingET/TrigEFMissingET/EFMissingET.h index 49da319dad666e08372040369023989e21b292a3..a928c805a8c1b32b414926115afa28c096beb49e 100644 --- a/Trigger/TrigAlgorithms/TrigEFMissingET/TrigEFMissingET/EFMissingET.h +++ b/Trigger/TrigAlgorithms/TrigEFMissingET/TrigEFMissingET/EFMissingET.h @@ -128,6 +128,7 @@ class EFMissingET : public HLT::AllTEAlgo { const xAOD::JetContainer *m_jets; const xAOD::TrackParticleContainer *m_tracks; const xAOD::VertexContainer *m_vertices; + const xAOD::MuonContainer *m_muons; // unsigned m_maskEMB_A_Missing; //!< EMB_A absent in DetMask // unsigned m_maskEMB_C_Missing; //!< EMB_C absent in DetMask @@ -162,7 +163,9 @@ class EFMissingET : public HLT::AllTEAlgo { bool m_doTimers; //!< switch on/off detailed timers bool m_decodeDetMask; //!< switch on/off DetMask decoding bool m_doTopoClusters; //!< switch on/off topo. clusters + bool m_doTrackTopoClusters; //!< switch on/off track and topo. clusters bool m_doJets; //!< switch on/off jets + bool m_doJetVeto; //!< siwtch on/off jetveto bool m_doTracks; //!< switch on/off tracks bool m_doPUC; //!< switch on/off Pile-up fit int m_n_sizePers; //!< number of components in pers. objects diff --git a/Trigger/TrigAlgorithms/TrigEFMissingET/TrigEFMissingET/EFMissingETBaseTool.h b/Trigger/TrigAlgorithms/TrigEFMissingET/TrigEFMissingET/EFMissingETBaseTool.h index 251212580b4fb237cda58d7ac3ceb36873937374..86624e0ef87199fc745a20ee91c1833e3b1e833b 100644 --- a/Trigger/TrigAlgorithms/TrigEFMissingET/TrigEFMissingET/EFMissingETBaseTool.h +++ b/Trigger/TrigAlgorithms/TrigEFMissingET/TrigEFMissingET/EFMissingETBaseTool.h @@ -26,6 +26,7 @@ tools must implement the execute(...) method. #include "xAODCaloEvent/CaloClusterContainer.h" #include "xAODTrigMissingET/TrigMissingET.h" #include "xAODJet/JetContainer.h" +#include "xAODMuon/MuonContainer.h" #include <vector> class TrigMissingET; @@ -63,7 +64,8 @@ class EFMissingETBaseTool : public AthAlgTool const xAOD::CaloClusterContainer *caloCluster, const xAOD::JetContainer *jets, const xAOD::TrackParticleContainer *track, - const xAOD::VertexContainer *vertex); + const xAOD::VertexContainer *vertex, + const xAOD::MuonContainer *muon); /** save time for detector iDet at step iStep in timerTime */ StatusCode getTime(int iDet, int iStep, float *timerTime); diff --git a/Trigger/TrigAlgorithms/TrigEFMissingET/TrigEFMissingET/EFMissingETFlags.h b/Trigger/TrigAlgorithms/TrigEFMissingET/TrigEFMissingET/EFMissingETFlags.h index 6cc8705b205f9f4049c0d0f96b31d861bf9a1e8a..1a75eed6261ea7ad3a0c99a0ac203ffaeb62a975 100644 --- a/Trigger/TrigAlgorithms/TrigEFMissingET/TrigEFMissingET/EFMissingETFlags.h +++ b/Trigger/TrigAlgorithms/TrigEFMissingET/TrigEFMissingET/EFMissingETFlags.h @@ -47,7 +47,8 @@ class EFMissingETFlags : public EFMissingETBaseTool const xAOD::CaloClusterContainer *caloCluster, const xAOD::JetContainer *jets, const xAOD::TrackParticleContainer *track, - const xAOD::VertexContainer *vertex); + const xAOD::VertexContainer *vertex, + const xAOD::MuonContainer *muon); private: diff --git a/Trigger/TrigAlgorithms/TrigEFMissingET/TrigEFMissingET/EFMissingETFromCells.h b/Trigger/TrigAlgorithms/TrigEFMissingET/TrigEFMissingET/EFMissingETFromCells.h index fab79dc1ae0df9521f312c15a95f0f5ccabe527d..9bf90a49449f21db640b5d54e3595325fd11622a 100644 --- a/Trigger/TrigAlgorithms/TrigEFMissingET/TrigEFMissingET/EFMissingETFromCells.h +++ b/Trigger/TrigAlgorithms/TrigEFMissingET/TrigEFMissingET/EFMissingETFromCells.h @@ -54,7 +54,8 @@ class EFMissingETFromCells : public EFMissingETBaseTool const xAOD::CaloClusterContainer *caloCluster, const xAOD::JetContainer *jets, const xAOD::TrackParticleContainer *track, - const xAOD::VertexContainer *vertex); + const xAOD::VertexContainer *vertex, + const xAOD::MuonContainer *muon); // slow calo data access via RegionSelector StatusCode addAllCellsToHelper(TrigEFMissingEtHelper* met); diff --git a/Trigger/TrigAlgorithms/TrigEFMissingET/TrigEFMissingET/EFMissingETFromClusters.h b/Trigger/TrigAlgorithms/TrigEFMissingET/TrigEFMissingET/EFMissingETFromClusters.h index d7eefc6e4efc9117c41edd2b1997d0d2cee64d58..c1a3f03944f91311e2ca580e785b16eed56482c6 100644 --- a/Trigger/TrigAlgorithms/TrigEFMissingET/TrigEFMissingET/EFMissingETFromClusters.h +++ b/Trigger/TrigAlgorithms/TrigEFMissingET/TrigEFMissingET/EFMissingETFromClusters.h @@ -45,7 +45,8 @@ class EFMissingETFromClusters : public EFMissingETBaseTool const xAOD::CaloClusterContainer *caloCluster, const xAOD::JetContainer *jets, const xAOD::TrackParticleContainer *track, - const xAOD::VertexContainer *vertex); + const xAOD::VertexContainer *vertex, + const xAOD::MuonContainer *muon); private: bool m_saveuncalibrated; diff --git a/Trigger/TrigAlgorithms/TrigEFMissingET/TrigEFMissingET/EFMissingETFromClustersPS.h b/Trigger/TrigAlgorithms/TrigEFMissingET/TrigEFMissingET/EFMissingETFromClustersPS.h index b5c3cf9b0e87791d498718a0a5a9e65b3e437e1a..9e28da99a00acb8341e3e8a6ba555e1ccaa38353 100644 --- a/Trigger/TrigAlgorithms/TrigEFMissingET/TrigEFMissingET/EFMissingETFromClustersPS.h +++ b/Trigger/TrigAlgorithms/TrigEFMissingET/TrigEFMissingET/EFMissingETFromClustersPS.h @@ -48,8 +48,8 @@ class EFMissingETFromClustersPS : public EFMissingETBaseTool const xAOD::CaloClusterContainer *caloCluster, const xAOD::JetContainer *jets, const xAOD::TrackParticleContainer *track, - const xAOD::VertexContainer *vertex); - + const xAOD::VertexContainer *vertex, + const xAOD::MuonContainer *muon); private: bool m_saveuncalibrated; bool m_subtractpileup; diff --git a/Trigger/TrigAlgorithms/TrigEFMissingET/TrigEFMissingET/EFMissingETFromClustersPUC.h b/Trigger/TrigAlgorithms/TrigEFMissingET/TrigEFMissingET/EFMissingETFromClustersPUC.h index 7f1340a0c984277d67fcc7b000086dd25333ea7b..4b96324f2abe75ae086f013b2ae8dbe4deb3a092 100644 --- a/Trigger/TrigAlgorithms/TrigEFMissingET/TrigEFMissingET/EFMissingETFromClustersPUC.h +++ b/Trigger/TrigAlgorithms/TrigEFMissingET/TrigEFMissingET/EFMissingETFromClustersPUC.h @@ -47,7 +47,8 @@ class EFMissingETFromClustersPUC : public EFMissingETBaseTool const xAOD::CaloClusterContainer *caloCluster, const xAOD::JetContainer *jets, const xAOD::TrackParticleContainer *track, - const xAOD::VertexContainer *vertex); + const xAOD::VertexContainer *vertex, + const xAOD::MuonContainer *muon); private: bool m_saveuncalibrated; @@ -67,6 +68,10 @@ class EFMissingETFromClustersPUC : public EFMissingETBaseTool double m_varrhoscale; //adjustment factor for weighting rho errors in fit double m_trimfactor; //Fraction of towers used in calculating the trimmed mean + bool m_doLArH11off; //! LAr H11 off or not + bool m_doLArH12off; //! LAr H12 off or not + double m_Jetptcut; //! Jet pt cut for LAr H11/H12 + int m_nphibins; int m_netabins; int m_ntowers; diff --git a/Trigger/TrigAlgorithms/TrigEFMissingET/TrigEFMissingET/EFMissingETFromClustersTracksPUC.h b/Trigger/TrigAlgorithms/TrigEFMissingET/TrigEFMissingET/EFMissingETFromClustersTracksPUC.h new file mode 100644 index 0000000000000000000000000000000000000000..608a91a3fe773dbb9a6b81ad673f0a54c8d150f6 --- /dev/null +++ b/Trigger/TrigAlgorithms/TrigEFMissingET/TrigEFMissingET/EFMissingETFromClustersTracksPUC.h @@ -0,0 +1,76 @@ +/* + Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +*/ + +#ifndef TRIGEFMISSINGET_EFMissingETFromClustersTracksPUC_H +#define TRIGEFMISSINGET_EFMissingETFromClustersTracksPUC_H + + + +/******************************************************************** + +This code should be edited as necessary and then placed in the TrigEFMissingET/TrigEFMissingET directory + + ********************************************************************/ + +#include "TrigEFMissingET/EFMissingETBaseTool.h" +#include "TrigMissingEtEvent/TrigMissingET.h" +#include "InDetTrackSelectionTool/IInDetTrackSelectionTool.h" +#include "GaudiKernel/ToolHandle.h" + +class EFMissingETFromClustersTracksPUC : public EFMissingETBaseTool +{ + public: + + EFMissingETFromClustersTracksPUC(const std::string& type, + const std::string& name, + const IInterface* parent); + + ~EFMissingETFromClustersTracksPUC(); + + virtual StatusCode initialize(); + virtual StatusCode finalize(); + virtual StatusCode execute(); + + virtual StatusCode execute(xAOD::TrigMissingET *met, + TrigEFMissingEtHelper *metHelper, + const xAOD::CaloClusterContainer *caloCluster, + const xAOD::JetContainer *jets, + const xAOD::TrackParticleContainer *track, + const xAOD::VertexContainer *vertex, + const xAOD::MuonContainer *muon); + + private: + //internal + unsigned int m_nPhiBins; + unsigned int m_nEtaBins; + unsigned int m_nTowers; + double m_towerEtaWidth; + double m_towerPhiWidth; + + bool m_saveuncalibrated; + xAOD::CaloCluster::State m_clusterstate; + + int m_methelperposition; + // Tower + double m_targetTowerWidth; + double m_maxEta; + + // For jet selection + double m_forward_ptcut; + double m_track_ptcut; + double m_dRCut; + double m_minJetPtJvt; + double m_maxJetPtJvt; + double m_jetRpTCut; + ToolHandle<InDet::IInDetTrackSelectionTool> m_trackselTool; + + //Covariance variables + double m_caloResSqrtTerm; + double m_caloResFloor; + + // Pufit variables + double m_constraintWeight; +}; + +#endif // TRIGEFMISSINGET_EFMissingETFromClustersTracksPUC_H diff --git a/Trigger/TrigAlgorithms/TrigEFMissingET/TrigEFMissingET/EFMissingETFromFEBHeader.h b/Trigger/TrigAlgorithms/TrigEFMissingET/TrigEFMissingET/EFMissingETFromFEBHeader.h index 840ce729d798037c4b506c2695e782cdba4757a7..25f614c5621423c723fc58710c52c3fd0cdfc07b 100644 --- a/Trigger/TrigAlgorithms/TrigEFMissingET/TrigEFMissingET/EFMissingETFromFEBHeader.h +++ b/Trigger/TrigAlgorithms/TrigEFMissingET/TrigEFMissingET/EFMissingETFromFEBHeader.h @@ -54,7 +54,8 @@ class EFMissingETFromFEBHeader : public EFMissingETBaseTool const xAOD::CaloClusterContainer *caloCluster, const xAOD::JetContainer *jets, const xAOD::TrackParticleContainer *track, - const xAOD::VertexContainer *vertex); + const xAOD::VertexContainer *vertex, + const xAOD::MuonContainer *muon); // slow calo data access via RegionSelector StatusCode addFebEnergyToHelper(TrigEFMissingEtHelper* met); diff --git a/Trigger/TrigAlgorithms/TrigEFMissingET/TrigEFMissingET/EFMissingETFromHelper.h b/Trigger/TrigAlgorithms/TrigEFMissingET/TrigEFMissingET/EFMissingETFromHelper.h index 1e2f6004c2b48df09d7791b49ef4a481c32a9154..f5ac2f4ffe28c1430dbd7f58355f756bb5fd357e 100644 --- a/Trigger/TrigAlgorithms/TrigEFMissingET/TrigEFMissingET/EFMissingETFromHelper.h +++ b/Trigger/TrigAlgorithms/TrigEFMissingET/TrigEFMissingET/EFMissingETFromHelper.h @@ -51,7 +51,10 @@ class EFMissingETFromHelper : public EFMissingETBaseTool const xAOD::CaloClusterContainer *caloCluster, const xAOD::JetContainer *jets, const xAOD::TrackParticleContainer *track, - const xAOD::VertexContainer *vertex); + const xAOD::VertexContainer *vertex, + const xAOD::MuonContainer *muon); + + StatusCode executeMT(xAOD::TrigMissingET *met, TrigEFMissingEtHelper *metHelper); }; diff --git a/Trigger/TrigAlgorithms/TrigEFMissingET/TrigEFMissingET/EFMissingETFromJets.h b/Trigger/TrigAlgorithms/TrigEFMissingET/TrigEFMissingET/EFMissingETFromJets.h index ba29788d3438a7473588790bb27232c2f59854c5..c1b7a832d84e8dc777c2d29738ced37c7bcf5354 100644 --- a/Trigger/TrigAlgorithms/TrigEFMissingET/TrigEFMissingET/EFMissingETFromJets.h +++ b/Trigger/TrigAlgorithms/TrigEFMissingET/TrigEFMissingET/EFMissingETFromJets.h @@ -45,7 +45,8 @@ class EFMissingETFromJets : public EFMissingETBaseTool const xAOD::CaloClusterContainer *caloCluster, const xAOD::JetContainer *jets, const xAOD::TrackParticleContainer *track, - const xAOD::VertexContainer *vertex); + const xAOD::VertexContainer *vertex, + const xAOD::MuonContainer *muon); private: float m_etacut; diff --git a/Trigger/TrigAlgorithms/TrigEFMissingET/TrigEFMissingET/EFMissingETFromTrackAndClusters.h b/Trigger/TrigAlgorithms/TrigEFMissingET/TrigEFMissingET/EFMissingETFromTrackAndClusters.h new file mode 100644 index 0000000000000000000000000000000000000000..bdd618af34409c27910531b52cfae2c5408eb36d --- /dev/null +++ b/Trigger/TrigAlgorithms/TrigEFMissingET/TrigEFMissingET/EFMissingETFromTrackAndClusters.h @@ -0,0 +1,123 @@ +/* + Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +*/ + +#ifndef TRIGEFMISSINGET_EFMissingETFromTrackAndClusters_H +#define TRIGEFMISSINGET_EFMissingETFromTrackAndClusters_H + +/******************************************************************** + +NAME: EFMissingETFromTrackAndClusters.h +PACKAGE: Trigger/TrigAlgorithms/TrigEFMissingET + +AUTHORS: Renjie Wang (renjie.wang@cern.ch) + Use tracks and vertices to remove pile-up clusters by Constituent-level pile-up mitigation techniques + (cluster vertex fraction, Voronoi Subtraction, SofterKiller ) + the track-based soft term is also added to MET + +CREATED: Aug 05, 2018 + + ********************************************************************/ + +#include "TrigEFMissingET/EFMissingETBaseTool.h" +#include "TrigMissingEtEvent/TrigMissingET.h" + + + +#include "xAODTracking/VertexContainer.h" +#include "xAODCaloEvent/CaloCluster.h" +#include "xAODCaloEvent/CaloClusterContainer.h" +#include "xAODCaloEvent/CaloClusterChangeSignalState.h" + +#include "xAODTracking/TrackParticlexAODHelpers.h" + +#include "xAODCore/ShallowCopy.h" +#include "xAODBase/IParticleHelpers.h" +#include "xAODCore/ShallowAuxContainer.h" + +#include "fastjet/ClusterSequenceArea.hh" +#include "fastjet/PseudoJet.hh" +#include "fastjet/Selector.hh" +#include "fastjet/JetDefinition.hh" +#include "fastjet/tools/JetMedianBackgroundEstimator.hh" +#include <fastjet/tools/Subtractor.hh> +#include "fastjet/contrib/SoftKiller.hh" + + +/** + $class EFMissingETFromTrackAndClusters + Updates transient helper object with topo. clusters + **/ + +class EFMissingETFromTrackAndClusters : public EFMissingETBaseTool { +public: + + EFMissingETFromTrackAndClusters(const std::string& type, + const std::string& name, + const IInterface* parent); + + ~EFMissingETFromTrackAndClusters(); + + virtual StatusCode initialize(); + virtual StatusCode finalize(); + virtual StatusCode execute(); + + virtual StatusCode execute(xAOD::TrigMissingET *met, + TrigEFMissingEtHelper *metHelper, + const xAOD::CaloClusterContainer *caloCluster, + const xAOD::JetContainer *jets, + const xAOD::TrackParticleContainer *track, + const xAOD::VertexContainer *vertex, + const xAOD::MuonContainer *muon); + + + void setCVF(std::vector<xAOD::CaloCluster>, const xAOD::TrackParticleContainer*, std::vector<const xAOD::TrackParticle*>, std::vector<float>&); + float ExtrapolationEstimate(float,float,float); + + StatusCode makeVoronoiClusters(std::vector<fastjet::PseudoJet>& clusters, std::vector< std::pair<fastjet::PseudoJet,std::vector<float> > >&) const; + void spreadPt(std::vector< std::pair< fastjet::PseudoJet,std::vector<float> > >& correctedptvec, float spreadr=0.4, float alpha=2) const; + + int calculateWeight(xAOD::CaloCluster cl) const; + int calculateSplitWeight(xAOD::CaloCluster cl) const; + void RunClusters(std::vector<xAOD::CaloCluster> m_clust) const; + void RunSplitClusters(std::vector<xAOD::CaloCluster> m_clust) const; + + + +private: + + double findMinPt(std::vector<fastjet::PseudoJet> *clustSK) const; + std::vector<fastjet::PseudoJet> makeSKClust(std::vector<fastjet::PseudoJet> clustPJ) const; + + + bool m_saveUncalibrated; + int m_metHelperPosition; + xAOD::CaloCluster_v1::State m_clusterstate; + + bool m_debug = false; + bool m_doLC = true; + bool m_doSpread = true; + int m_nSigma = 0; + + + //mutable int m_initCount; + float m_lambdaCalDivide; + + // Properties. + bool m_isCaloSplit; + float m_gridSpacing; + float m_eCalGrid; + float m_hCalGrid; + float m_rapmin; + float m_rapmax; + float m_rapminApplied; + float m_rapmaxApplied; + mutable double m_minPt; + mutable double m_minPtECal; + mutable double m_minPtHCal; + + + float m_deltaR; +}; + +#endif // TRIGEFMISSINGET_EFMissingETFromTrackAndClusters_H diff --git a/Trigger/TrigAlgorithms/TrigEFMissingET/TrigEFMissingET/EFMissingETFromTrackAndJets.h b/Trigger/TrigAlgorithms/TrigEFMissingET/TrigEFMissingET/EFMissingETFromTrackAndJets.h index 7277bed763b6f84eae8492681ecf2d9d78b3758a..345e14ee5fcdbf07896060e0165a983481fc0ebc 100755 --- a/Trigger/TrigAlgorithms/TrigEFMissingET/TrigEFMissingET/EFMissingETFromTrackAndJets.h +++ b/Trigger/TrigAlgorithms/TrigEFMissingET/TrigEFMissingET/EFMissingETFromTrackAndJets.h @@ -53,7 +53,8 @@ class EFMissingETFromTrackAndJets : public EFMissingETBaseTool const xAOD::CaloClusterContainer *caloCluster, const xAOD::JetContainer *jets, const xAOD::TrackParticleContainer *track, - const xAOD::VertexContainer *vertex); + const xAOD::VertexContainer *vertex, + const xAOD::MuonContainer *muon); TH1* getHistogramFromFile(TString hname, TString fname); @@ -67,7 +68,6 @@ class EFMissingETFromTrackAndJets : public EFMissingETBaseTool TH2F* m_jvtLikelihood; ToolHandle<InDet::IInDetTrackSelectionTool> m_trackselTool; - ToolHandle<InDet::IInDetTrackSelectionTool> m_muontrackselTool; }; #endif // TRIGEFMISSINGET_EFMISSINGETFROMTRACKANDJETS_H diff --git a/Trigger/TrigAlgorithms/TrigEFMissingET/python/TrigEFMissingETConfig.py b/Trigger/TrigAlgorithms/TrigEFMissingET/python/TrigEFMissingETConfig.py index 4be81ddc97d4d4446e8a14f7c70da40e8197c3d4..4127a7ebe4066d9ce697f9a72e4c60def0eebeb1 100644 --- a/Trigger/TrigAlgorithms/TrigEFMissingET/python/TrigEFMissingETConfig.py +++ b/Trigger/TrigAlgorithms/TrigEFMissingET/python/TrigEFMissingETConfig.py @@ -7,8 +7,10 @@ from TrigEFMissingET.TrigEFMissingETConf import EFMissingETFromCells from TrigEFMissingET.TrigEFMissingETConf import EFMissingETFromClusters from TrigEFMissingET.TrigEFMissingETConf import EFMissingETFromClustersPS from TrigEFMissingET.TrigEFMissingETConf import EFMissingETFromClustersPUC +from TrigEFMissingET.TrigEFMissingETConf import EFMissingETFromClustersTracksPUC from TrigEFMissingET.TrigEFMissingETConf import EFMissingETFromJets from TrigEFMissingET.TrigEFMissingETConf import EFMissingETFromTrackAndJets +from TrigEFMissingET.TrigEFMissingETConf import EFMissingETFromTrackAndClusters from TrigEFMissingET.TrigEFMissingETConf import EFMissingETFlags from TrigEFMissingET.TrigEFMissingETConf import EFMissingETFromHelper @@ -1172,6 +1174,194 @@ class EFMissingET_Fex_topoClustersPS (EFMissingETBase): self.ComponentCalib1 += [ 1.00 ] # Muons + from TrigEFMissingET.TrigEFMissingETMonitoring import TrigEFMissingETValidationMonitoring_other, TrigEFMissingETOnlineMonitoring_other, TrigEFMissingETCosmicMonitoring_other + validation = TrigEFMissingETValidationMonitoring_other() + online = TrigEFMissingETOnlineMonitoring_other() + cosmic = TrigEFMissingETCosmicMonitoring_other() + + self.AthenaMonTools = [ validation, online, cosmic] + +#### Use topo. clusters for noise suppression ##### +class EFMissingET_Fex_topoClustersTracksPUC (EFMissingETBase): + __slots__ = [] + def __init__ (self, name="EFMissingET_Fex_topoClustersTracksPUC", extraCalib = ""): + super(EFMissingET_Fex_topoClustersTracksPUC, self).__init__(name) + + # name of TrigMissingET object + self.MissingETOutputKey = "TrigEFMissingET_topocltrk_PUC{0}".format(extraCalib) + self.doTopoClusters = True + self.doPUC = True + self.doJets = True + self.doTracks = True + + # tools + clusterTool = EFMissingETFromClustersTracksPUC("TheClusterToolTracksPUC") + flagTool = EFMissingETFlags("TheFlagsTool") + helperTool = EFMissingETFromHelper("TheHelperTool") + + clusterTool.ParentFexName = name + flagTool.ParentFexName = name + helperTool.ParentFexName = name + + #clusterTool.SubtractPileup = True + is2016 = (TriggerFlags.run2Config() == '2016') + clusterTool.SaveUncalibrated = True if "_em" in extraCalib else False + + ''' + clusterTool.use2016Algo = is2016 +# N.B. - defaults for 2016 running: nSigma = 3.2 and varRhoScale = 4.0 +# N.B. - defaults for 2017 running: nSigma = 5.0 and varRhoScale = 1.0 + clusterTool.nSigma = 3.2 if is2016 else 5.0 + clusterTool.varRhoScale = 4.0 if is2016 else 1.0 + clusterTool.aveEclusPU = 10000.0 + clusterTool.towerWidthInput = 0.7 + clusterTool.EtaRange = 5.0 + clusterTool.resE = 15.81 + clusterTool.resEfloor = 50.0 + clusterTool.trimFactor = 0.90 + ''' + # fraction of energy deposited in EM samplings + flagTool.MaxEMfraction = 1.0 + flagTool.MinEMfraction = 0.0 + flagTool.MaxTileGapEratio = 1.0 + # max/min energy ratios from each subdet. + flagTool.MaxSumEratioInEMB = 1.0 + flagTool.MaxSumEratioInEME = 1.0 + flagTool.MaxSumEratioInHEC = 1.0 + flagTool.MaxSumEratioInTileBar = 1.0 + flagTool.MaxSumEratioInTileGap = 1.0 + flagTool.MaxSumEratioInTileExt = 1.0 + flagTool.MaxSumEratioInFCal = 1.0 + flagTool.MinSumEratioInEMB = 0.0 + flagTool.MinSumEratioInEME = 0.0 + flagTool.MinSumEratioInHEC = 0.0 + flagTool.MinSumEratioInTileBar = 0.0 + flagTool.MinSumEratioInTileGap = 0.0 + flagTool.MinSumEratioInTileExt = 0.0 + flagTool.MinSumEratioInTileExt = 0.0 + # max/min comp energies + flagTool.MaxCompE = [] + flagTool.MaxCompE += [ 1e4*GeV,1e4*GeV,1e4*GeV,1e4*GeV ] # PreSamplB, EMB1, EMB2, EMB3 + flagTool.MaxCompE += [ 1e4*GeV,1e4*GeV,1e4*GeV,1e4*GeV ] # PreSamplE, EME1, EME2, EME3 + flagTool.MaxCompE += [ 1e4*GeV,1e4*GeV,1e4*GeV,1e4*GeV ] # HEC0, HEC1, HEC2, HEC3 + flagTool.MaxCompE += [ 1e4*GeV,1e4*GeV,1e4*GeV ] # TileBar0, TileBar1, TileBar2 + flagTool.MaxCompE += [ 1e4*GeV,1e4*GeV,1e4*GeV ] # TileGap0, TileGap1, TileGap2 + flagTool.MaxCompE += [ 1e4*GeV,1e4*GeV,1e4*GeV ] # TileExt0, TileExt1, TileExt2 + flagTool.MaxCompE += [ 1e4*GeV,1e4*GeV,1e4*GeV ] # FCalEM, FCalHad1, FCalHad2 + flagTool.MinCompE = [] + flagTool.MinCompE += [ 0.0*GeV,0.0*GeV,0.0*GeV,0.0*GeV ] # PreSamplB, EMB1, EMB2, EMB3 + flagTool.MinCompE += [ 0.0*GeV,0.0*GeV,0.0*GeV,0.0*GeV ] # PreSamplE, EME1, EME2, EME3 + flagTool.MinCompE += [ 0.0*GeV,0.0*GeV,0.0*GeV,0.0*GeV ] # HEC0, HEC1, HEC2, HEC3 + flagTool.MinCompE += [ 0.0*GeV,0.0*GeV,0.0*GeV ] # TileBar0, TileBar1, TileBar2 + flagTool.MaxCellE += [ 1e4*GeV,1e4*GeV,1e4*GeV ] # TileGap0, TileGap1, TileGap2 + flagTool.MaxCellE += [ 1e4*GeV,1e4*GeV,1e4*GeV ] # TileExt0, TileExt1, TileExt2 + flagTool.MaxCellE += [ 1e4*GeV,1e4*GeV,1e4*GeV ] # FCalEM, FCalHad1, FCalHad2 + flagTool.MinCellE = [] + flagTool.MinCellE += [ 0.0*GeV,0.0*GeV,0.0*GeV,0.0*GeV ] # PreSamplB, EMB1, EMB2, EMB3 + flagTool.MinCellE += [ 0.0*GeV,0.0*GeV,0.0*GeV,0.0*GeV ] # PreSamplE, EME1, EME2, EME3 + flagTool.MinCellE += [ 0.0*GeV,0.0*GeV,0.0*GeV,0.0*GeV ] # HEC0, HEC1, HEC2, HEC3 + flagTool.MinCellE += [ 0.0*GeV,0.0*GeV,0.0*GeV ] # TileBar0, TileBar1, TileBar2 + flagTool.MinCellE += [ 0.0*GeV,0.0*GeV,0.0*GeV ] # TileGap0, TileGap1, TileGap2 + flagTool.MinCellE += [ 0.0*GeV,0.0*GeV,0.0*GeV ] # TileExt0, TileExt1, TileExt2 + flagTool.MinCellE += [ 0.0*GeV,0.0*GeV,0.0*GeV ] # FCalEM, FCalHad1, FCalHad2 + # max/min cell times + flagTool.MaxCellTime = [] + flagTool.MaxCellTime += [ +10*nanosecond,+10*nanosecond,+10*nanosecond,+10*nanosecond ] # PreSamplB, EMB1, EMB2, EMB3 + flagTool.MaxCellTime += [ +10*nanosecond,+10*nanosecond,+10*nanosecond,+10*nanosecond ] # PreSamplE, EME1, EME2, EME3 + flagTool.MaxCellTime += [ +10*nanosecond,+10*nanosecond,+10*nanosecond,+10*nanosecond ] # HEC0, HEC1, HEC2, HEC3 + flagTool.MaxCellTime += [ +10*nanosecond,+10*nanosecond,+10*nanosecond ] # TileBar0, TileBar1, TileBar2 + flagTool.MaxCellTime += [ +10*nanosecond,+10*nanosecond,+10*nanosecond ] # TileGap0, TileGap1, TileGap2 + flagTool.MaxCellTime += [ +10*nanosecond,+10*nanosecond,+10*nanosecond ] # TileExt0, TileExt1, TileExt2 + flagTool.MaxCellTime += [ +10*nanosecond,+10*nanosecond,+10*nanosecond ] # FCalEM, FCalHad1, FCalHad2 + flagTool.MinCellTime = [] + flagTool.MinCellTime += [ -10*nanosecond,-10*nanosecond,-10*nanosecond,-10*nanosecond ] # PreSamplB, EMB1, EMB2, EMB3 + flagTool.MinCellTime += [ -10*nanosecond,-10*nanosecond,-10*nanosecond,-10*nanosecond ] # PreSamplE, EME1, EME2, EME3 + flagTool.MinCellTime += [ -10*nanosecond,-10*nanosecond,-10*nanosecond,-10*nanosecond ] # HEC0, HEC1, HEC2, HEC3 + flagTool.MinCellTime += [ -10*nanosecond,-10*nanosecond,-10*nanosecond ] # TileBar0, TileBar1, TileBar2 + flagTool.MinCellTime += [ -10*nanosecond,-10*nanosecond,-10*nanosecond ] # TileGap0, TileGap1, TileGap2 + flagTool.MinCellTime += [ -10*nanosecond,-10*nanosecond,-10*nanosecond ] # TileExt0, TileExt1, TileExt2 + flagTool.MinCellTime += [ -10*nanosecond,-10*nanosecond,-10*nanosecond ] # FCalEM, FCalHad1, FCalHad2 + # max cell chi-square + flagTool.WorstCellQuality = [] + flagTool.WorstCellQuality += [ 4e3,4e3,4e3,4e3 ] # PreSamplB, EMB1, EMB2, EMB3 + flagTool.WorstCellQuality += [ 4e3,4e3,4e3,4e3 ] # PreSamplE, EME1, EME2, EME3 + flagTool.WorstCellQuality += [ 4e3,4e3,4e3,4e3 ] # HEC0, HEC1, HEC2, HEC3 + flagTool.WorstCellQuality += [ 4e3,4e3,4e3 ] # TileBar0, TileBar1, TileBar2 + flagTool.WorstCellQuality += [ 4e3,4e3,4e3 ] # TileGap0, TileGap1, TileGap2 + flagTool.WorstCellQuality += [ 4e3,4e3,4e3 ] # TileExt0, TileExt1, TileExt2 + flagTool.WorstCellQuality += [ 4e3,4e3,4e3 ] # FCalEM, FCalHad1, FCalHad2 + + ## chain of tools + self.Tools = [] + self.Tools += [ clusterTool ] + self.Tools += [ flagTool ] + self.Tools += [ helperTool ] + + # component flags (-1 means skip) + self.ComponentFlags = [] + self.ComponentFlags += [ 0,0,0,0 ] # PreSamplB, EMB1, EMB2, EMB3 + self.ComponentFlags += [ 0,0,0,0 ] # PreSamplE, EME1, EME2, EME3 + self.ComponentFlags += [ 0,0,0,0 ] # HEC0, HEC1, HEC2, HEC3 + self.ComponentFlags += [ 0,0,0 ] # TileBar0, TileBar1, TileBar2 + self.ComponentFlags += [ 0,0,0 ] # TileGap0, TileGap1, TileGap2 + self.ComponentFlags += [ 0,0,0 ] # TileExt0, TileExt1, TileExt2 + self.ComponentFlags += [ 0,0,0 ] # FCalEM, FCalHad1, FCalHad2 + self.ComponentFlags += [ 0 ] # EM Topo + self.ComponentFlags += [ 0,0 ] + self.ComponentFlags += [ 0,0 ] + self.ComponentFlags += [ 0 ] # Had Topo + self.ComponentFlags += [ 0,0 ] + self.ComponentFlags += [ 0,0 ] + self.ComponentFlags += [ 0 ] # Jet + self.ComponentFlags += [ 0,0 ] + self.ComponentFlags += [ 0,0 ] + self.ComponentFlags += [ 0 ] # PUC + self.ComponentFlags += [ 0 ] # PUC prior correction + self.ComponentFlags += [ 0 ] # Muons + # calibration: constant term (MeV) + self.ComponentCalib0 = [] + self.ComponentCalib0 += [ 0,0,0,0 ] # PreSamplB, EMB1, EMB2, EMB3 + self.ComponentCalib0 += [ 0,0,0,0 ] # PreSamplE, EME1, EME2, EME3 + self.ComponentCalib0 += [ 0,0,0,0 ] # HEC0, HEC1, HEC2, HEC3 + self.ComponentCalib0 += [ 0,0,0 ] # TileBar0, TileBar1, TileBar2 + self.ComponentCalib0 += [ 0,0,0 ] # TileGap0, TileGap1, TileGap2 + self.ComponentCalib0 += [ 0,0,0 ] # TileExt0, TileExt1, TileExt2 + self.ComponentCalib0 += [ 0,0,0 ] # FCalEM, FCalHad1, FCalHad2 + self.ComponentCalib0 += [ 0 ] # EM Topo + self.ComponentCalib0 += [ 0, 0 ] + self.ComponentCalib0 += [ 0, 0 ] + self.ComponentCalib0 += [ 0 ] # Had Topo + self.ComponentCalib0 += [ 0, 0 ] + self.ComponentCalib0 += [ 0, 0 ] + self.ComponentCalib0 += [ 0 ] # Jet + self.ComponentCalib0 += [ 0, 0 ] + self.ComponentCalib0 += [ 0, 0 ] + self.ComponentCalib0 += [ 0 ] # PUC + self.ComponentCalib0 += [ 0 ] # PUC prior correction + self.ComponentCalib0 += [ 0 ] # Muons + # calibration: multiplicative constant + self.ComponentCalib1 = [] + self.ComponentCalib1 += [ 1.00,1.00,1.00,1.00 ] # PreSamplB, EMB1, EMB2, EMB3 + self.ComponentCalib1 += [ 1.00,1.00,1.00,1.00 ] # PreSamplE, EME1, EME2, EME3 + self.ComponentCalib1 += [ 1.00,1.00,1.00,1.00 ] # HEC0, HEC1, HEC2, HEC3 + self.ComponentCalib1 += [ 1.00,1.00,1.00 ] # TileBar0, TileBar1, TileBar2 + self.ComponentCalib1 += [ 1.00,1.00,1.00 ] # TileGap0, TileGap1, TileGap2 + self.ComponentCalib1 += [ 1.00,1.00,1.00 ] # TileExt0, TileExt1, TileExt2 + self.ComponentCalib1 += [ 1.00,1.00,1.00 ] # FCalEM, FCalHad1, FCalHad2 + self.ComponentCalib1 += [ 1.00 ] # EM Topo + self.ComponentCalib1 += [ 1.00,1.00 ] + self.ComponentCalib1 += [ 1.00,1.00 ] + self.ComponentCalib1 += [ 1.00 ] # Had Topo + self.ComponentCalib1 += [ 1.00,1.00 ] + self.ComponentCalib1 += [ 1.00,1.00 ] + self.ComponentCalib1 += [ 1.00 ] # Jet + self.ComponentCalib1 += [ 1.00,1.00 ] + self.ComponentCalib1 += [ 1.00,1.00 ] + self.ComponentCalib1 += [ 1.00 ] # PUC + self.ComponentCalib1 += [ 1.00 ] # PUC prior correction + self.ComponentCalib1 += [ 1.00 ] # Muons + + from TrigEFMissingET.TrigEFMissingETMonitoring import TrigEFMissingETValidationMonitoring_other, TrigEFMissingETOnlineMonitoring_other, TrigEFMissingETCosmicMonitoring_other validation = TrigEFMissingETValidationMonitoring_other() online = TrigEFMissingETOnlineMonitoring_other() @@ -1182,13 +1372,14 @@ class EFMissingET_Fex_topoClustersPS (EFMissingETBase): ##### Use topo. clusters for noise suppression ##### class EFMissingET_Fex_topoClustersPUC (EFMissingETBase): __slots__ = [] - def __init__ (self, name="EFMissingET_Fex_topoClustersPUC"): + def __init__ (self, name="EFMissingET_Fex_topoClustersPUC", doLArH11off = False, doLArH12off = False, jptthr = -1.0): super(EFMissingET_Fex_topoClustersPUC, self).__init__(name) # name of TrigMissingET object - self.MissingETOutputKey = "TrigEFMissingET_topocl_PUC" + self.MissingETOutputKey = "TrigEFMissingET_topocl_PUC" if 'LAr' not in name else "TrigEFMissingET_"+name self.doTopoClusters = True self.doPUC = True + self.doJetVeto = True # tools clusterTool = EFMissingETFromClustersPUC("TheClusterToolPUC") @@ -1200,10 +1391,12 @@ class EFMissingET_Fex_topoClustersPUC (EFMissingETBase): helperTool.ParentFexName = name clusterTool.SubtractPileup = True - - is2016 = (TriggerFlags.run2Config() == '2016') + ## + clusterTool.doLArH11off = doLArH11off + clusterTool.doLArH12off = doLArH12off + clusterTool.Jetptcut = jptthr clusterTool.use2016Algo = is2016 # N.B. - defaults for 2016 running: nSigma = 3.2 and varRhoScale = 4.0 @@ -1378,11 +1571,11 @@ class EFMissingET_Fex_topoClustersPUC (EFMissingETBase): ##### loop over jets ##### class EFMissingET_Fex_Jets (EFMissingETBase): __slots__ = [] - def __init__ (self, name="EFMissingET_Fex_Jets"): + def __init__ (self, name="EFMissingET_Fex_Jets", extraCalib = ""): super(EFMissingET_Fex_Jets, self).__init__(name) # name of TrigMissingET object - self.MissingETOutputKey = "TrigEFMissingET_mht" + self.MissingETOutputKey = "TrigEFMissingET_mht{0}".format(extraCalib) self.doJets = True # tools @@ -1449,9 +1642,6 @@ class EFMissingET_Fex_TrackAndJets (EFMissingETBase): jetTool.TrackSelectionTool.CutLevel = "Loose" jetTool.TrackSelectionTool.maxZ0SinTheta = 1.5 jetTool.TrackSelectionTool.maxD0overSigmaD0 = 3 - jetTool.MuonTrackSelectionTool.CutLevel = "LooseMuon" - jetTool.MuonTrackSelectionTool.maxZ0SinTheta = 1.5 - jetTool.MuonTrackSelectionTool.maxD0overSigmaD0 = 3 ## chain of tools self.Tools = [] @@ -1466,11 +1656,422 @@ class EFMissingET_Fex_TrackAndJets (EFMissingETBase): self.AthenaMonTools = [ validation, online, cosmic] -##### THE DEFAULT FEX ##### -class EFMissingET_Fex (EFMissingET_Fex_2sidednoiseSupp): +##### loop over tracks and jets ##### +class EFMissingET_Fex_FTKTrackAndJets (EFMissingETBase): __slots__ = [] - def __init__ (self, name="EFMissingET_Fex"): - super(EFMissingET_Fex, self).__init__(name) + def __init__ (self, name="EFMissingET_Fex_FTKTrackAndJets"): + super(EFMissingET_Fex_FTKTrackAndJets, self).__init__(name) # name of TrigMissingET object - self.MissingETOutputKey = "TrigEFMissingET" + self.MissingETOutputKey = "TrigEFMissingET_trkmhtFTK" + self.doJets = True + self.doTracks = True + + # tools + febTool = EFMissingETFromFEBHeader("TheFEBTool") + jetTool = EFMissingETFromTrackAndJets("TheTrackAndJetTool") + flagTool = EFMissingETFlags("TheFlagsTool") + helperTool = EFMissingETFromHelper("TheHelperTool") + # + febTool.ParentFexName = name + jetTool.ParentFexName = name + flagTool.ParentFexName = name + helperTool.ParentFexName = name + # + + ## Configuration of jet fex + jetTool.EtaSeparation = 2.2 + jetTool.CentralpTCut = 25 #GeV + jetTool.ForwardpTCut = 0.0 + jetTool.TrackpTCut = 1 #GeV + jetTool.CentralJetJVTCut = 0.9 + jetTool.TrackSelectionTool.CutLevel = "Loose" + jetTool.TrackSelectionTool.maxZ0SinTheta = 1.5 + jetTool.TrackSelectionTool.maxD0overSigmaD0 = 3 + + ## chain of tools + self.Tools = [] + self.Tools += [ jetTool ] + self.Tools += [ flagTool ] + self.Tools += [ helperTool ] + + from TrigEFMissingET.TrigEFMissingETMonitoring import TrigEFMissingETValidationMonitoring_alt, TrigEFMissingETOnlineMonitoring_alt, TrigEFMissingETCosmicMonitoring_alt + validation = TrigEFMissingETValidationMonitoring_alt() + online = TrigEFMissingETOnlineMonitoring_alt() + cosmic = TrigEFMissingETCosmicMonitoring_alt() + + self.AthenaMonTools = [ validation, online, cosmic] + + +##### Use topo. clusters and tracks for constituent-level pile-up mitigation ##### +class EFMissingET_Fex_TrackAndClusters (EFMissingETBase): + __slots__ = [] + def __init__ (self, name="EFMissingET_Fex_TrackAndClusters"): + super(EFMissingET_Fex_TrackAndClusters, self).__init__(name) + + # name of TrigMissingET object + self.MissingETOutputKey = "TrigEFMissingET_trktc" + self.doTrackTopoClusters = True + self.doTracks = True + + # tools + clusterTool =EFMissingETFromTrackAndClusters("TheTrackAndClusters") + flagTool = EFMissingETFlags("TheFlagsTool") + helperTool = EFMissingETFromHelper("TheHelperTool") + # + clusterTool.ParentFexName = name + flagTool.ParentFexName = name + helperTool.ParentFexName = name + + # ClusterTool options + + # fraction of energy deposited in EM samplings + flagTool.MaxEMfraction = 1.0 + flagTool.MinEMfraction = 0.0 + flagTool.MaxTileGapEratio = 1.0 + # max/min energy ratios from each subdet. + flagTool.MaxSumEratioInEMB = 1.0 + flagTool.MaxSumEratioInEME = 1.0 + flagTool.MaxSumEratioInHEC = 1.0 + flagTool.MaxSumEratioInTileBar = 1.0 + flagTool.MaxSumEratioInTileGap = 1.0 + flagTool.MaxSumEratioInTileExt = 1.0 + flagTool.MaxSumEratioInFCal = 1.0 + flagTool.MinSumEratioInEMB = 0.0 + flagTool.MinSumEratioInEME = 0.0 + flagTool.MinSumEratioInHEC = 0.0 + flagTool.MinSumEratioInTileBar = 0.0 + flagTool.MinSumEratioInTileGap = 0.0 + flagTool.MinSumEratioInTileExt = 0.0 + flagTool.MinSumEratioInTileExt = 0.0 + # max/min comp energies + flagTool.MaxCompE = [] + flagTool.MaxCompE += [ 1e4*GeV,1e4*GeV,1e4*GeV,1e4*GeV ] # PreSamplB, EMB1, EMB2, EMB3 + flagTool.MaxCompE += [ 1e4*GeV,1e4*GeV,1e4*GeV,1e4*GeV ] # PreSamplE, EME1, EME2, EME3 + flagTool.MaxCompE += [ 1e4*GeV,1e4*GeV,1e4*GeV,1e4*GeV ] # HEC0, HEC1, HEC2, HEC3 + flagTool.MaxCompE += [ 1e4*GeV,1e4*GeV,1e4*GeV ] # TileBar0, TileBar1, TileBar2 + flagTool.MaxCompE += [ 1e4*GeV,1e4*GeV,1e4*GeV ] # TileGap0, TileGap1, TileGap2 + flagTool.MaxCompE += [ 1e4*GeV,1e4*GeV,1e4*GeV ] # TileExt0, TileExt1, TileExt2 + flagTool.MaxCompE += [ 1e4*GeV,1e4*GeV,1e4*GeV ] # FCalEM, FCalHad1, FCalHad2 + flagTool.MinCompE = [] + flagTool.MinCompE += [ 0.0*GeV,0.0*GeV,0.0*GeV,0.0*GeV ] # PreSamplB, EMB1, EMB2, EMB3 + flagTool.MinCompE += [ 0.0*GeV,0.0*GeV,0.0*GeV,0.0*GeV ] # PreSamplE, EME1, EME2, EME3 + flagTool.MinCompE += [ 0.0*GeV,0.0*GeV,0.0*GeV,0.0*GeV ] # HEC0, HEC1, HEC2, HEC3 + flagTool.MinCompE += [ 0.0*GeV,0.0*GeV,0.0*GeV ] # TileBar0, TileBar1, TileBar2 + flagTool.MinCompE += [ 0.0*GeV,0.0*GeV,0.0*GeV ] # TileGap0, TileGap1, TileGap2 + flagTool.MinCompE += [ 0.0*GeV,0.0*GeV,0.0*GeV ] # TileExt0, TileExt1, TileExt2 + flagTool.MinCompE += [ 0.0*GeV,0.0*GeV,0.0*GeV ] # FCalEM, FCalHad1, FCalHad2 + # max/min cell energies + flagTool.MaxCellE = [] + flagTool.MaxCellE += [ 1e4*GeV,1e4*GeV,1e4*GeV,1e4*GeV ] # PreSamplB, EMB1, EMB2, EMB3 + flagTool.MaxCellE += [ 1e4*GeV,1e4*GeV,1e4*GeV,1e4*GeV ] # PreSamplE, EME1, EME2, EME3 + flagTool.MaxCellE += [ 1e4*GeV,1e4*GeV,1e4*GeV,1e4*GeV ] # HEC0, HEC1, HEC2, HEC3 + flagTool.MaxCellE += [ 1e4*GeV,1e4*GeV,1e4*GeV ] # TileBar0, TileBar1, TileBar2 + flagTool.MaxCellE += [ 1e4*GeV,1e4*GeV,1e4*GeV ] # TileGap0, TileGap1, TileGap2 + flagTool.MaxCellE += [ 1e4*GeV,1e4*GeV,1e4*GeV ] # TileExt0, TileExt1, TileExt2 + flagTool.MaxCellE += [ 1e4*GeV,1e4*GeV,1e4*GeV ] # FCalEM, FCalHad1, FCalHad2 + flagTool.MinCellE = [] + flagTool.MinCellE += [ 0.0*GeV,0.0*GeV,0.0*GeV,0.0*GeV ] # PreSamplB, EMB1, EMB2, EMB3 + flagTool.MinCellE += [ 0.0*GeV,0.0*GeV,0.0*GeV,0.0*GeV ] # PreSamplE, EME1, EME2, EME3 + flagTool.MinCellE += [ 0.0*GeV,0.0*GeV,0.0*GeV,0.0*GeV ] # HEC0, HEC1, HEC2, HEC3 + flagTool.MinCellE += [ 0.0*GeV,0.0*GeV,0.0*GeV ] # TileBar0, TileBar1, TileBar2 + flagTool.MinCellE += [ 0.0*GeV,0.0*GeV,0.0*GeV ] # TileGap0, TileGap1, TileGap2 + flagTool.MinCellE += [ 0.0*GeV,0.0*GeV,0.0*GeV ] # TileExt0, TileExt1, TileExt2 + flagTool.MinCellE += [ 0.0*GeV,0.0*GeV,0.0*GeV ] # FCalEM, FCalHad1, FCalHad2 + # max/min cell times + flagTool.MaxCellTime = [] + flagTool.MaxCellTime += [ +10*nanosecond,+10*nanosecond,+10*nanosecond,+10*nanosecond ] # PreSamplB, EMB1, EMB2, EMB3 + flagTool.MaxCellTime += [ +10*nanosecond,+10*nanosecond,+10*nanosecond,+10*nanosecond ] # PreSamplE, EME1, EME2, EME3 + flagTool.MaxCellTime += [ +10*nanosecond,+10*nanosecond,+10*nanosecond,+10*nanosecond ] # HEC0, HEC1, HEC2, HEC3 + flagTool.MaxCellTime += [ +10*nanosecond,+10*nanosecond,+10*nanosecond ] # TileBar0, TileBar1, TileBar2 + flagTool.MaxCellTime += [ +10*nanosecond,+10*nanosecond,+10*nanosecond ] # TileGap0, TileGap1, TileGap2 + flagTool.MaxCellTime += [ +10*nanosecond,+10*nanosecond,+10*nanosecond ] # TileExt0, TileExt1, TileExt2 + flagTool.MaxCellTime += [ +10*nanosecond,+10*nanosecond,+10*nanosecond ] # FCalEM, FCalHad1, FCalHad2 + flagTool.MinCellTime = [] + flagTool.MinCellTime += [ -10*nanosecond,-10*nanosecond,-10*nanosecond,-10*nanosecond ] # PreSamplB, EMB1, EMB2, EMB3 + flagTool.MinCellTime += [ -10*nanosecond,-10*nanosecond,-10*nanosecond,-10*nanosecond ] # PreSamplE, EME1, EME2, EME3 + flagTool.MinCellTime += [ -10*nanosecond,-10*nanosecond,-10*nanosecond,-10*nanosecond ] # HEC0, HEC1, HEC2, HEC3 + flagTool.MinCellTime += [ -10*nanosecond,-10*nanosecond,-10*nanosecond ] # TileBar0, TileBar1, TileBar2 + flagTool.MinCellTime += [ -10*nanosecond,-10*nanosecond,-10*nanosecond ] # TileGap0, TileGap1, TileGap2 + flagTool.MinCellTime += [ -10*nanosecond,-10*nanosecond,-10*nanosecond ] # TileExt0, TileExt1, TileExt2 + flagTool.MinCellTime += [ -10*nanosecond,-10*nanosecond,-10*nanosecond ] # FCalEM, FCalHad1, FCalHad2 + # max cell chi-square + flagTool.WorstCellQuality = [] + flagTool.WorstCellQuality += [ 4e3,4e3,4e3,4e3 ] # PreSamplB, EMB1, EMB2, EMB3 + flagTool.WorstCellQuality += [ 4e3,4e3,4e3,4e3 ] # PreSamplE, EME1, EME2, EME3 + flagTool.WorstCellQuality += [ 4e3,4e3,4e3,4e3 ] # HEC0, HEC1, HEC2, HEC3 + flagTool.WorstCellQuality += [ 4e3,4e3,4e3 ] # TileBar0, TileBar1, TileBar2 + flagTool.WorstCellQuality += [ 4e3,4e3,4e3 ] # TileGap0, TileGap1, TileGap2 + flagTool.WorstCellQuality += [ 4e3,4e3,4e3 ] # TileExt0, TileExt1, TileExt2 + flagTool.WorstCellQuality += [ 4e3,4e3,4e3 ] # FCalEM, FCalHad1, FCalHad2 + + ## chain of tools + self.Tools = [] + self.Tools += [ clusterTool ] + self.Tools += [ flagTool ] + self.Tools += [ helperTool ] + + # component flags (-1 means skip) + self.ComponentFlags = [] + self.ComponentFlags += [ 0,0,0,0 ] # PreSamplB, EMB1, EMB2, EMB3 + self.ComponentFlags += [ 0,0,0,0 ] # PreSamplE, EME1, EME2, EME3 + self.ComponentFlags += [ 0,0,0,0 ] # HEC0, HEC1, HEC2, HEC3 + self.ComponentFlags += [ 0,0,0 ] # TileBar0, TileBar1, TileBar2 + self.ComponentFlags += [ 0,0,0 ] # TileGap0, TileGap1, TileGap2 + self.ComponentFlags += [ 0,0,0 ] # TileExt0, TileExt1, TileExt2 + self.ComponentFlags += [ 0,0,0 ] # FCalEM, FCalHad1, FCalHad2 + self.ComponentFlags += [ 0 ] # EM Topo + self.ComponentFlags += [ 0,0 ] + self.ComponentFlags += [ 0,0 ] + self.ComponentFlags += [ 0 ] # Had Topo + self.ComponentFlags += [ 0,0 ] + self.ComponentFlags += [ 0,0 ] + self.ComponentFlags += [ 0 ] # Jet + self.ComponentFlags += [ 0,0 ] + self.ComponentFlags += [ 0,0 ] + self.ComponentFlags += [ 0 ] # PUC + self.ComponentFlags += [ 0 ] # PUC prior correction + self.ComponentFlags += [ 0 ] # Muons + # calibration: constant term (MeV) + self.ComponentCalib0 = [] + self.ComponentCalib0 += [ 0,0,0,0 ] # PreSamplB, EMB1, EMB2, EMB3 + self.ComponentCalib0 += [ 0,0,0,0 ] # PreSamplE, EME1, EME2, EME3 + self.ComponentCalib0 += [ 0,0,0,0 ] # HEC0, HEC1, HEC2, HEC3 + self.ComponentCalib0 += [ 0,0,0 ] # TileBar0, TileBar1, TileBar2 + self.ComponentCalib0 += [ 0,0,0 ] # TileGap0, TileGap1, TileGap2 + self.ComponentCalib0 += [ 0,0,0 ] # TileExt0, TileExt1, TileExt2 + self.ComponentCalib0 += [ 0,0,0 ] # FCalEM, FCalHad1, FCalHad2 + self.ComponentCalib0 += [ 0 ] # EM Topo + self.ComponentCalib0 += [ 0, 0 ] + self.ComponentCalib0 += [ 0, 0 ] + self.ComponentCalib0 += [ 0 ] # Had Topo + self.ComponentCalib0 += [ 0, 0 ] + self.ComponentCalib0 += [ 0, 0 ] + self.ComponentCalib0 += [ 0 ] # Jet + self.ComponentCalib0 += [ 0, 0 ] + self.ComponentCalib0 += [ 0, 0 ] + self.ComponentCalib0 += [ 0 ] # PUC + self.ComponentCalib0 += [ 0 ] # PUC prior correction + self.ComponentCalib0 += [ 0 ] # Muons + # calibration: multiplicative constant + self.ComponentCalib1 = [] + self.ComponentCalib1 += [ 1.00,1.00,1.00,1.00 ] # PreSamplB, EMB1, EMB2, EMB3 + self.ComponentCalib1 += [ 1.00,1.00,1.00,1.00 ] # PreSamplE, EME1, EME2, EME3 + self.ComponentCalib1 += [ 1.00,1.00,1.00,1.00 ] # HEC0, HEC1, HEC2, HEC3 + self.ComponentCalib1 += [ 1.00,1.00,1.00 ] # TileBar0, TileBar1, TileBar2 + self.ComponentCalib1 += [ 1.00,1.00,1.00 ] # TileGap0, TileGap1, TileGap2 + self.ComponentCalib1 += [ 1.00,1.00,1.00 ] # TileExt0, TileExt1, TileExt2 + self.ComponentCalib1 += [ 1.00,1.00,1.00 ] # FCalEM, FCalHad1, FCalHad2 + self.ComponentCalib1 += [ 1.00 ] # EM Topo + self.ComponentCalib1 += [ 1.00,1.00 ] + self.ComponentCalib1 += [ 1.00,1.00 ] + self.ComponentCalib1 += [ 1.00 ] # Had Topo + self.ComponentCalib1 += [ 1.00,1.00 ] + self.ComponentCalib1 += [ 1.00,1.00 ] + self.ComponentCalib1 += [ 1.00 ] # Jet + self.ComponentCalib1 += [ 1.00,1.00 ] + self.ComponentCalib1 += [ 1.00,1.00 ] + self.ComponentCalib1 += [ 1.00 ] # PUC + self.ComponentCalib1 += [ 1.00 ] # PUC prior correction + self.ComponentCalib1 += [ 1.00 ] # Muons + + + from TrigEFMissingET.TrigEFMissingETMonitoring import TrigEFMissingETValidationMonitoring_other, TrigEFMissingETOnlineMonitoring_other, TrigEFMissingETCosmicMonitoring_other + validation = TrigEFMissingETValidationMonitoring_other() + online = TrigEFMissingETOnlineMonitoring_other() + cosmic = TrigEFMissingETCosmicMonitoring_other() + + self.AthenaMonTools = [ validation, online, cosmic] + + +##### Use topo. clusters and tracks for constituent-level pile-up mitigation ##### +class EFMissingET_Fex_FTKTrackAndClusters (EFMissingETBase): + __slots__ = [] + def __init__ (self, name="EFMissingET_Fex_FTKTrackAndClusters"): + super(EFMissingET_Fex_FTKTrackAndClusters, self).__init__(name) + + # name of TrigMissingET object + self.MissingETOutputKey = "TrigEFMissingET_trktcFTK" + self.doTrackTopoClusters = True + self.doTracks = True + + # tools + clusterTool =EFMissingETFromTrackAndClusters("TheTrackAndClusters") + flagTool = EFMissingETFlags("TheFlagsTool") + helperTool = EFMissingETFromHelper("TheHelperTool") + # + clusterTool.ParentFexName = name + flagTool.ParentFexName = name + helperTool.ParentFexName = name + + # ClusterTool options + + # fraction of energy deposited in EM samplings + flagTool.MaxEMfraction = 1.0 + flagTool.MinEMfraction = 0.0 + flagTool.MaxTileGapEratio = 1.0 + # max/min energy ratios from each subdet. + flagTool.MaxSumEratioInEMB = 1.0 + flagTool.MaxSumEratioInEME = 1.0 + flagTool.MaxSumEratioInHEC = 1.0 + flagTool.MaxSumEratioInTileBar = 1.0 + flagTool.MaxSumEratioInTileGap = 1.0 + flagTool.MaxSumEratioInTileExt = 1.0 + flagTool.MaxSumEratioInFCal = 1.0 + flagTool.MinSumEratioInEMB = 0.0 + flagTool.MinSumEratioInEME = 0.0 + flagTool.MinSumEratioInHEC = 0.0 + flagTool.MinSumEratioInTileBar = 0.0 + flagTool.MinSumEratioInTileGap = 0.0 + flagTool.MinSumEratioInTileExt = 0.0 + flagTool.MinSumEratioInTileExt = 0.0 + # max/min comp energies + flagTool.MaxCompE = [] + flagTool.MaxCompE += [ 1e4*GeV,1e4*GeV,1e4*GeV,1e4*GeV ] # PreSamplB, EMB1, EMB2, EMB3 + flagTool.MaxCompE += [ 1e4*GeV,1e4*GeV,1e4*GeV,1e4*GeV ] # PreSamplE, EME1, EME2, EME3 + flagTool.MaxCompE += [ 1e4*GeV,1e4*GeV,1e4*GeV,1e4*GeV ] # HEC0, HEC1, HEC2, HEC3 + flagTool.MaxCompE += [ 1e4*GeV,1e4*GeV,1e4*GeV ] # TileBar0, TileBar1, TileBar2 + flagTool.MaxCompE += [ 1e4*GeV,1e4*GeV,1e4*GeV ] # TileGap0, TileGap1, TileGap2 + flagTool.MaxCompE += [ 1e4*GeV,1e4*GeV,1e4*GeV ] # TileExt0, TileExt1, TileExt2 + flagTool.MaxCompE += [ 1e4*GeV,1e4*GeV,1e4*GeV ] # FCalEM, FCalHad1, FCalHad2 + flagTool.MinCompE = [] + flagTool.MinCompE += [ 0.0*GeV,0.0*GeV,0.0*GeV,0.0*GeV ] # PreSamplB, EMB1, EMB2, EMB3 + flagTool.MinCompE += [ 0.0*GeV,0.0*GeV,0.0*GeV,0.0*GeV ] # PreSamplE, EME1, EME2, EME3 + flagTool.MinCompE += [ 0.0*GeV,0.0*GeV,0.0*GeV,0.0*GeV ] # HEC0, HEC1, HEC2, HEC3 + flagTool.MinCompE += [ 0.0*GeV,0.0*GeV,0.0*GeV ] # TileBar0, TileBar1, TileBar2 + flagTool.MinCompE += [ 0.0*GeV,0.0*GeV,0.0*GeV ] # TileGap0, TileGap1, TileGap2 + flagTool.MinCompE += [ 0.0*GeV,0.0*GeV,0.0*GeV ] # TileExt0, TileExt1, TileExt2 + flagTool.MinCompE += [ 0.0*GeV,0.0*GeV,0.0*GeV ] # FCalEM, FCalHad1, FCalHad2 + # max/min cell energies + flagTool.MaxCellE = [] + flagTool.MaxCellE += [ 1e4*GeV,1e4*GeV,1e4*GeV,1e4*GeV ] # PreSamplB, EMB1, EMB2, EMB3 + flagTool.MaxCellE += [ 1e4*GeV,1e4*GeV,1e4*GeV,1e4*GeV ] # PreSamplE, EME1, EME2, EME3 + flagTool.MaxCellE += [ 1e4*GeV,1e4*GeV,1e4*GeV,1e4*GeV ] # HEC0, HEC1, HEC2, HEC3 + flagTool.MaxCellE += [ 1e4*GeV,1e4*GeV,1e4*GeV ] # TileBar0, TileBar1, TileBar2 + flagTool.MaxCellE += [ 1e4*GeV,1e4*GeV,1e4*GeV ] # TileGap0, TileGap1, TileGap2 + flagTool.MaxCellE += [ 1e4*GeV,1e4*GeV,1e4*GeV ] # TileExt0, TileExt1, TileExt2 + flagTool.MaxCellE += [ 1e4*GeV,1e4*GeV,1e4*GeV ] # FCalEM, FCalHad1, FCalHad2 + flagTool.MinCellE = [] + flagTool.MinCellE += [ 0.0*GeV,0.0*GeV,0.0*GeV,0.0*GeV ] # PreSamplB, EMB1, EMB2, EMB3 + flagTool.MinCellE += [ 0.0*GeV,0.0*GeV,0.0*GeV,0.0*GeV ] # PreSamplE, EME1, EME2, EME3 + flagTool.MinCellE += [ 0.0*GeV,0.0*GeV,0.0*GeV,0.0*GeV ] # HEC0, HEC1, HEC2, HEC3 + flagTool.MinCellE += [ 0.0*GeV,0.0*GeV,0.0*GeV ] # TileBar0, TileBar1, TileBar2 + flagTool.MinCellE += [ 0.0*GeV,0.0*GeV,0.0*GeV ] # TileGap0, TileGap1, TileGap2 + flagTool.MinCellE += [ 0.0*GeV,0.0*GeV,0.0*GeV ] # TileExt0, TileExt1, TileExt2 + flagTool.MinCellE += [ 0.0*GeV,0.0*GeV,0.0*GeV ] # FCalEM, FCalHad1, FCalHad2 + # max/min cell times + flagTool.MaxCellTime = [] + flagTool.MaxCellTime += [ +10*nanosecond,+10*nanosecond,+10*nanosecond,+10*nanosecond ] # PreSamplB, EMB1, EMB2, EMB3 + flagTool.MaxCellTime += [ +10*nanosecond,+10*nanosecond,+10*nanosecond,+10*nanosecond ] # PreSamplE, EME1, EME2, EME3 + flagTool.MaxCellTime += [ +10*nanosecond,+10*nanosecond,+10*nanosecond,+10*nanosecond ] # HEC0, HEC1, HEC2, HEC3 + flagTool.MaxCellTime += [ +10*nanosecond,+10*nanosecond,+10*nanosecond ] # TileBar0, TileBar1, TileBar2 + flagTool.MaxCellTime += [ +10*nanosecond,+10*nanosecond,+10*nanosecond ] # TileGap0, TileGap1, TileGap2 + flagTool.MaxCellTime += [ +10*nanosecond,+10*nanosecond,+10*nanosecond ] # TileExt0, TileExt1, TileExt2 + flagTool.MaxCellTime += [ +10*nanosecond,+10*nanosecond,+10*nanosecond ] # FCalEM, FCalHad1, FCalHad2 + flagTool.MinCellTime = [] + flagTool.MinCellTime += [ -10*nanosecond,-10*nanosecond,-10*nanosecond,-10*nanosecond ] # PreSamplB, EMB1, EMB2, EMB3 + flagTool.MinCellTime += [ -10*nanosecond,-10*nanosecond,-10*nanosecond,-10*nanosecond ] # PreSamplE, EME1, EME2, EME3 + flagTool.MinCellTime += [ -10*nanosecond,-10*nanosecond,-10*nanosecond,-10*nanosecond ] # HEC0, HEC1, HEC2, HEC3 + flagTool.MinCellTime += [ -10*nanosecond,-10*nanosecond,-10*nanosecond ] # TileBar0, TileBar1, TileBar2 + flagTool.MinCellTime += [ -10*nanosecond,-10*nanosecond,-10*nanosecond ] # TileGap0, TileGap1, TileGap2 + flagTool.MinCellTime += [ -10*nanosecond,-10*nanosecond,-10*nanosecond ] # TileExt0, TileExt1, TileExt2 + flagTool.MinCellTime += [ -10*nanosecond,-10*nanosecond,-10*nanosecond ] # FCalEM, FCalHad1, FCalHad2 + # max cell chi-square + flagTool.WorstCellQuality = [] + flagTool.WorstCellQuality += [ 4e3,4e3,4e3,4e3 ] # PreSamplB, EMB1, EMB2, EMB3 + flagTool.WorstCellQuality += [ 4e3,4e3,4e3,4e3 ] # PreSamplE, EME1, EME2, EME3 + flagTool.WorstCellQuality += [ 4e3,4e3,4e3,4e3 ] # HEC0, HEC1, HEC2, HEC3 + flagTool.WorstCellQuality += [ 4e3,4e3,4e3 ] # TileBar0, TileBar1, TileBar2 + flagTool.WorstCellQuality += [ 4e3,4e3,4e3 ] # TileGap0, TileGap1, TileGap2 + flagTool.WorstCellQuality += [ 4e3,4e3,4e3 ] # TileExt0, TileExt1, TileExt2 + flagTool.WorstCellQuality += [ 4e3,4e3,4e3 ] # FCalEM, FCalHad1, FCalHad2 + + ## chain of tools + self.Tools = [] + self.Tools += [ clusterTool ] + self.Tools += [ flagTool ] + self.Tools += [ helperTool ] + + # component flags (-1 means skip) + self.ComponentFlags = [] + self.ComponentFlags += [ 0,0,0,0 ] # PreSamplB, EMB1, EMB2, EMB3 + self.ComponentFlags += [ 0,0,0,0 ] # PreSamplE, EME1, EME2, EME3 + self.ComponentFlags += [ 0,0,0,0 ] # HEC0, HEC1, HEC2, HEC3 + self.ComponentFlags += [ 0,0,0 ] # TileBar0, TileBar1, TileBar2 + self.ComponentFlags += [ 0,0,0 ] # TileGap0, TileGap1, TileGap2 + self.ComponentFlags += [ 0,0,0 ] # TileExt0, TileExt1, TileExt2 + self.ComponentFlags += [ 0,0,0 ] # FCalEM, FCalHad1, FCalHad2 + self.ComponentFlags += [ 0 ] # EM Topo + self.ComponentFlags += [ 0,0 ] + self.ComponentFlags += [ 0,0 ] + self.ComponentFlags += [ 0 ] # Had Topo + self.ComponentFlags += [ 0,0 ] + self.ComponentFlags += [ 0,0 ] + self.ComponentFlags += [ 0 ] # Jet + self.ComponentFlags += [ 0,0 ] + self.ComponentFlags += [ 0,0 ] + self.ComponentFlags += [ 0 ] # PUC + self.ComponentFlags += [ 0 ] # PUC prior correction + self.ComponentFlags += [ 0 ] # Muons + # calibration: constant term (MeV) + self.ComponentCalib0 = [] + self.ComponentCalib0 += [ 0,0,0,0 ] # PreSamplB, EMB1, EMB2, EMB3 + self.ComponentCalib0 += [ 0,0,0,0 ] # PreSamplE, EME1, EME2, EME3 + self.ComponentCalib0 += [ 0,0,0,0 ] # HEC0, HEC1, HEC2, HEC3 + self.ComponentCalib0 += [ 0,0,0 ] # TileBar0, TileBar1, TileBar2 + self.ComponentCalib0 += [ 0,0,0 ] # TileGap0, TileGap1, TileGap2 + self.ComponentCalib0 += [ 0,0,0 ] # TileExt0, TileExt1, TileExt2 + self.ComponentCalib0 += [ 0,0,0 ] # FCalEM, FCalHad1, FCalHad2 + self.ComponentCalib0 += [ 0 ] # EM Topo + self.ComponentCalib0 += [ 0, 0 ] + self.ComponentCalib0 += [ 0, 0 ] + self.ComponentCalib0 += [ 0 ] # Had Topo + self.ComponentCalib0 += [ 0, 0 ] + self.ComponentCalib0 += [ 0, 0 ] + self.ComponentCalib0 += [ 0 ] # Jet + self.ComponentCalib0 += [ 0, 0 ] + self.ComponentCalib0 += [ 0, 0 ] + self.ComponentCalib0 += [ 0 ] # PUC + self.ComponentCalib0 += [ 0 ] # PUC prior correction + self.ComponentCalib0 += [ 0 ] # Muons + # calibration: multiplicative constant + self.ComponentCalib1 = [] + self.ComponentCalib1 += [ 1.00,1.00,1.00,1.00 ] # PreSamplB, EMB1, EMB2, EMB3 + self.ComponentCalib1 += [ 1.00,1.00,1.00,1.00 ] # PreSamplE, EME1, EME2, EME3 + self.ComponentCalib1 += [ 1.00,1.00,1.00,1.00 ] # HEC0, HEC1, HEC2, HEC3 + self.ComponentCalib1 += [ 1.00,1.00,1.00 ] # TileBar0, TileBar1, TileBar2 + self.ComponentCalib1 += [ 1.00,1.00,1.00 ] # TileGap0, TileGap1, TileGap2 + self.ComponentCalib1 += [ 1.00,1.00,1.00 ] # TileExt0, TileExt1, TileExt2 + self.ComponentCalib1 += [ 1.00,1.00,1.00 ] # FCalEM, FCalHad1, FCalHad2 + self.ComponentCalib1 += [ 1.00 ] # EM Topo + self.ComponentCalib1 += [ 1.00,1.00 ] + self.ComponentCalib1 += [ 1.00,1.00 ] + self.ComponentCalib1 += [ 1.00 ] # Had Topo + self.ComponentCalib1 += [ 1.00,1.00 ] + self.ComponentCalib1 += [ 1.00,1.00 ] + self.ComponentCalib1 += [ 1.00 ] # Jet + self.ComponentCalib1 += [ 1.00,1.00 ] + self.ComponentCalib1 += [ 1.00,1.00 ] + self.ComponentCalib1 += [ 1.00 ] # PUC + self.ComponentCalib1 += [ 1.00 ] # PUC prior correction + self.ComponentCalib1 += [ 1.00 ] # Muons + + + from TrigEFMissingET.TrigEFMissingETMonitoring import TrigEFMissingETValidationMonitoring_other, TrigEFMissingETOnlineMonitoring_other, TrigEFMissingETCosmicMonitoring_other + validation = TrigEFMissingETValidationMonitoring_other() + online = TrigEFMissingETOnlineMonitoring_other() + cosmic = TrigEFMissingETCosmicMonitoring_other() + + self.AthenaMonTools = [ validation, online, cosmic] + + +##### THE DEFAULT FEX ##### +class EFMissingET_Fex (EFMissingET_Fex_2sidednoiseSupp): + __slots__ = [] + def __init__ (self, name="EFMissingET_Fex"): + super(EFMissingET_Fex, self).__init__(name) + + # name of TrigMissingET object + self.MissingETOutputKey = "TrigEFMissingET" + + diff --git a/Trigger/TrigAlgorithms/TrigEFMissingET/src/EFMissingET.cxx b/Trigger/TrigAlgorithms/TrigEFMissingET/src/EFMissingET.cxx index e4005c86fd5304b1cb17cc91cdb17c955e339929..8417c4e430a6e59c44efaa147fdcfb6cedbb3afb 100644 --- a/Trigger/TrigAlgorithms/TrigEFMissingET/src/EFMissingET.cxx +++ b/Trigger/TrigAlgorithms/TrigEFMissingET/src/EFMissingET.cxx @@ -27,6 +27,8 @@ #include "CaloEvent/CaloCellContainer.h" #include "xAODTrigMissingET/TrigMissingET.h" #include "xAODTrigMissingET/TrigMissingETContainer.h" +#include "AthContainers/DataVector.h" +#include "AthContainers/ConstDataVector.h" //#include "TrigNavigation/Navigation.h" // Added for "Hack" //#include "TrigNavigation/NavigationCore.icc" // Added for "Hack" @@ -42,460 +44,473 @@ using namespace std; class ISvcLocator; EFMissingET::EFMissingET(const std::string & name, ISvcLocator* pSvcLocator): - HLT::AllTEAlgo(name, pSvcLocator), - m_cachedTE(0), m_useCachedResult(false), m_tools( this ) + HLT::AllTEAlgo(name, pSvcLocator), + m_cachedTE(0), m_useCachedResult(false), m_tools( this ) { - declareProperty("MissingETOutputKey",m_metOutputKey = "TrigEFMissingET", "label for the MET feature in the HLT navigation"); - declareProperty("Tools", m_tools, "list of missEt tools"); - declareProperty("doTimers", m_doTimers = true, "switch on/off internal timers"); - declareProperty("DecodeDetMask", m_decodeDetMask = false, "switch on/off DetMask decoding"); - declareProperty("doTopoClusters", m_doTopoClusters = false, "run with or without topo. clusters"); - declareProperty("doJets", m_doJets = false, "run with or without jets"); - declareProperty("doTracks", m_doTracks = false, "run with or without tracks"); - declareProperty("doPUC", m_doPUC = false, "run with or without pile-up correction fit"); - declareProperty("ComponentFlags", m_flags, "(vector) set to -1 to switch off a component"); - declareProperty("ComponentCalib0", m_calib0, "(vector) additive calibration constants"); - declareProperty("ComponentCalib1", m_calib1, "(vector) multiplicative calib. constants"); - - declareMonitoredVariable("EF_MEx_log", m_mex_log); - declareMonitoredVariable("EF_MEy_log", m_mey_log); - declareMonitoredVariable("EF_MEz_log", m_mez_log); - declareMonitoredVariable("EF_MET_log", m_met_log); - declareMonitoredVariable("EF_ME_log", m_me_log); - declareMonitoredVariable("EF_SumEt_log", m_set_log); - declareMonitoredVariable("EF_SumE_log", m_se_log); - - declareMonitoredVariable("EF_MEx_lin", m_mex_lin); - declareMonitoredVariable("EF_MEy_lin", m_mey_lin); - declareMonitoredVariable("EF_MEz_lin", m_mez_lin); - declareMonitoredVariable("EF_MET_lin", m_met_lin); - declareMonitoredVariable("EF_ME_lin", m_me_lin); - declareMonitoredVariable("EF_SumEt_lin", m_set_lin); - declareMonitoredVariable("EF_SumE_lin", m_se_lin); - declareMonitoredVariable("EF_XS", m_xs); - declareMonitoredVariable("EF_MET_phi", m_phi); - - declareMonitoredVariable("EMRegSelTime", m_tool_time_00); - declareMonitoredVariable("EMLoadColTime", m_tool_time_01); - declareMonitoredVariable("EMLoopTime", m_tool_time_02); - declareMonitoredVariable("HECRegSelTime", m_tool_time_10); - declareMonitoredVariable("HECLoadColTime", m_tool_time_11); - declareMonitoredVariable("HECLoopTime", m_tool_time_12); - declareMonitoredVariable("TileRegSelTime", m_tool_time_20); - declareMonitoredVariable("TileLoadColTime", m_tool_time_21); - declareMonitoredVariable("TileLoopTime", m_tool_time_22); - declareMonitoredVariable("FCalRegSelTime", m_tool_time_30); - declareMonitoredVariable("FCalLoadColTime", m_tool_time_31); - declareMonitoredVariable("FCalLoopTime", m_tool_time_32); + declareProperty("MissingETOutputKey",m_metOutputKey = "TrigEFMissingET", "label for the MET feature in the HLT navigation"); + declareProperty("Tools", m_tools, "list of missEt tools"); + declareProperty("doTimers", m_doTimers = true, "switch on/off internal timers"); + declareProperty("DecodeDetMask", m_decodeDetMask = false, "switch on/off DetMask decoding"); + declareProperty("doTopoClusters", m_doTopoClusters = false, "run with or without topo. clusters"); + declareProperty("doTrackTopoClusters", m_doTrackTopoClusters = false, "run with or without track and topo. clusters"); + declareProperty("doJets", m_doJets = false, "run with or without jets"); + declareProperty("doJetVeto", m_doJetVeto = false, "run with or without Jet Veto"); + declareProperty("doTracks", m_doTracks = false, "run with or without tracks"); + declareProperty("doPUC", m_doPUC = false, "run with or without pile-up correction fit"); + declareProperty("ComponentFlags", m_flags, "(vector) set to -1 to switch off a component"); + declareProperty("ComponentCalib0", m_calib0, "(vector) additive calibration constants"); + declareProperty("ComponentCalib1", m_calib1, "(vector) multiplicative calib. constants"); + + declareMonitoredVariable("EF_MEx_log", m_mex_log); + declareMonitoredVariable("EF_MEy_log", m_mey_log); + declareMonitoredVariable("EF_MEz_log", m_mez_log); + declareMonitoredVariable("EF_MET_log", m_met_log); + declareMonitoredVariable("EF_ME_log", m_me_log); + declareMonitoredVariable("EF_SumEt_log", m_set_log); + declareMonitoredVariable("EF_SumE_log", m_se_log); + + declareMonitoredVariable("EF_MEx_lin", m_mex_lin); + declareMonitoredVariable("EF_MEy_lin", m_mey_lin); + declareMonitoredVariable("EF_MEz_lin", m_mez_lin); + declareMonitoredVariable("EF_MET_lin", m_met_lin); + declareMonitoredVariable("EF_ME_lin", m_me_lin); + declareMonitoredVariable("EF_SumEt_lin", m_set_lin); + declareMonitoredVariable("EF_SumE_lin", m_se_lin); + declareMonitoredVariable("EF_XS", m_xs); + declareMonitoredVariable("EF_MET_phi", m_phi); + + declareMonitoredVariable("EMRegSelTime", m_tool_time_00); + declareMonitoredVariable("EMLoadColTime", m_tool_time_01); + declareMonitoredVariable("EMLoopTime", m_tool_time_02); + declareMonitoredVariable("HECRegSelTime", m_tool_time_10); + declareMonitoredVariable("HECLoadColTime", m_tool_time_11); + declareMonitoredVariable("HECLoopTime", m_tool_time_12); + declareMonitoredVariable("TileRegSelTime", m_tool_time_20); + declareMonitoredVariable("TileLoadColTime", m_tool_time_21); + declareMonitoredVariable("TileLoopTime", m_tool_time_22); + declareMonitoredVariable("FCalRegSelTime", m_tool_time_30); + declareMonitoredVariable("FCalLoadColTime", m_tool_time_31); + declareMonitoredVariable("FCalLoopTime", m_tool_time_32); // declareMonitoredVariable("TotalTime", m_tool_time_TOT); - declareMonitoredVariable("TotalEMTime", m_tool_time_EM); - declareMonitoredVariable("TotalHECTime", m_tool_time_HEC); - declareMonitoredVariable("TotalTileTime", m_tool_time_Tile); - declareMonitoredVariable("TotalFCalTime", m_tool_time_FCal); - declareMonitoredVariable("TotalRegSelTime", m_tool_time_RegSel); - declareMonitoredVariable("TotalLoadColTime", m_tool_time_LoadCol); - declareMonitoredVariable("TotalLoopTime", m_tool_time_Loop); - - // helper object - unsigned char N=42; // number of components - m_met_help = new TrigEFMissingEtHelper(N); - m_flags.reserve(N); - m_calib0.reserve(N); - m_calib1.reserve(N); - m_comp_index.reserve(N); - m_comp_ex_log.reserve(N); - m_comp_ey_log.reserve(N); - m_comp_ez_log.reserve(N); - m_comp_et_log.reserve(N); - m_comp_sum_et_log.reserve(N); - m_comp_sum_e_log.reserve(N); - m_comp_status_flag.reserve(N); - m_comp_et_lin.reserve(N); - m_comp_sum_et_lin.reserve(N); - - for (int i=0; i<N; ++i) { - m_comp_index.push_back(i); - m_comp_ex_log.push_back(0); - m_comp_ey_log.push_back(0); - m_comp_ez_log.push_back(0); - m_comp_et_log.push_back(0); - m_comp_sum_et_log.push_back(0); - m_comp_sum_e_log.push_back(0); - m_comp_status_flag.push_back(0); - m_comp_et_lin.push_back(0); - m_comp_sum_et_lin.push_back(0); - } - - declareMonitoredStdContainer("compN", m_comp_index); - declareMonitoredStdContainer("compEx", m_comp_ex_log); - declareMonitoredStdContainer("compEy", m_comp_ey_log); - declareMonitoredStdContainer("compEz", m_comp_ez_log); - declareMonitoredStdContainer("compEt", m_comp_et_log); - declareMonitoredStdContainer("compSumEt", m_comp_sum_et_log); - declareMonitoredStdContainer("compSumE", m_comp_sum_e_log); - declareMonitoredStdContainer("compEt_lin", m_comp_et_lin); - declareMonitoredStdContainer("compSumEt_lin", m_comp_sum_et_lin); - - declareMonitoredStdContainer("compStatus", m_comp_status_flag); + declareMonitoredVariable("TotalEMTime", m_tool_time_EM); + declareMonitoredVariable("TotalHECTime", m_tool_time_HEC); + declareMonitoredVariable("TotalTileTime", m_tool_time_Tile); + declareMonitoredVariable("TotalFCalTime", m_tool_time_FCal); + declareMonitoredVariable("TotalRegSelTime", m_tool_time_RegSel); + declareMonitoredVariable("TotalLoadColTime", m_tool_time_LoadCol); + declareMonitoredVariable("TotalLoopTime", m_tool_time_Loop); + + // helper object + unsigned char N=42; // number of components + m_met_help = new TrigEFMissingEtHelper(N); + m_flags.reserve(N); + m_calib0.reserve(N); + m_calib1.reserve(N); + m_comp_index.reserve(N); + m_comp_ex_log.reserve(N); + m_comp_ey_log.reserve(N); + m_comp_ez_log.reserve(N); + m_comp_et_log.reserve(N); + m_comp_sum_et_log.reserve(N); + m_comp_sum_e_log.reserve(N); + m_comp_status_flag.reserve(N); + m_comp_et_lin.reserve(N); + m_comp_sum_et_lin.reserve(N); + + for (int i=0; i<N; ++i) { + m_comp_index.push_back(i); + m_comp_ex_log.push_back(0); + m_comp_ey_log.push_back(0); + m_comp_ez_log.push_back(0); + m_comp_et_log.push_back(0); + m_comp_sum_et_log.push_back(0); + m_comp_sum_e_log.push_back(0); + m_comp_status_flag.push_back(0); + m_comp_et_lin.push_back(0); + m_comp_sum_et_lin.push_back(0); + } + + declareMonitoredStdContainer("compN", m_comp_index); + declareMonitoredStdContainer("compEx", m_comp_ex_log); + declareMonitoredStdContainer("compEy", m_comp_ey_log); + declareMonitoredStdContainer("compEz", m_comp_ez_log); + declareMonitoredStdContainer("compEt", m_comp_et_log); + declareMonitoredStdContainer("compSumEt", m_comp_sum_et_log); + declareMonitoredStdContainer("compSumE", m_comp_sum_e_log); + declareMonitoredStdContainer("compEt_lin", m_comp_et_lin); + declareMonitoredStdContainer("compSumEt_lin", m_comp_sum_et_lin); + + declareMonitoredStdContainer("compStatus", m_comp_status_flag); // declareMonitoredCustomVariable("compStatus", m_comp_status_flag); - m_status_flag.reserve(32); // to map a 32-bit word - m_status_flag.assign(32, 0); - declareMonitoredStdContainer("EF_MET_status", m_status_flag); - - m_totTime=0; - m_algTime=0; - - m_StoreGate=nullptr; - m_current_run_id=0; - m_current_lbk_id=0; - m_current_evt_id=0; - m_current_bcg_id=0; - m_LArEMbarrelAside=true; - m_LArEMbarrelCside=true; - m_LArEMendCapAside=true; - m_LArEMendCapCside=true; - m_LArHECendCapAside=true; - m_LArHECendCapCside=true; - m_LArFCalAside=true; - m_LArFCalCside=true; - m_TileBarrelAside=true; - m_TileBarrelCside=true; - m_TileExtBarAside=true; - m_TileExtBarCside=true; - - m_caloCluster=nullptr; - m_jets=nullptr; - m_tracks=nullptr; - m_vertices=nullptr; - - // // see the base tool for all other status bits - // m_maskEMB_A_Missing = 0x00010000; // bit 16 - // m_maskEMB_C_Missing = 0x00020000; // bit 17 - // m_maskEME_A_Missing = 0x00040000; // bit 18 - // m_maskEME_C_Missing = 0x00080000; // bit 19 - // m_maskHEC_A_Missing = 0x00100000; // bit 20 - // m_maskHEC_C_Missing = 0x00200000; // bit 21 - // m_maskFCAL_A_Missing = 0x00400000; // bit 22 - // m_maskFCAL_C_Missing = 0x00800000; // bit 23 - // m_maskTileB_A_Missing = 0x01000000; // bit 24 - // m_maskTileB_C_Missing = 0x02000000; // bit 25 - // m_maskTileE_A_Missing = 0x04000000; // bit 26 - // m_maskTileE_C_Missing = 0x08000000; // bit 27 - - //Initialize some variables to make coverity happy, - //even though not needed in principle - - m_met=nullptr; - m_firsteventinrun=false; - m_n_sizePers=0; + m_status_flag.reserve(32); // to map a 32-bit word + m_status_flag.assign(32, 0); + declareMonitoredStdContainer("EF_MET_status", m_status_flag); + + m_totTime=0; + m_algTime=0; + + m_StoreGate=nullptr; + m_current_run_id=0; + m_current_lbk_id=0; + m_current_evt_id=0; + m_current_bcg_id=0; + m_LArEMbarrelAside=true; + m_LArEMbarrelCside=true; + m_LArEMendCapAside=true; + m_LArEMendCapCside=true; + m_LArHECendCapAside=true; + m_LArHECendCapCside=true; + m_LArFCalAside=true; + m_LArFCalCside=true; + m_TileBarrelAside=true; + m_TileBarrelCside=true; + m_TileExtBarAside=true; + m_TileExtBarCside=true; + + m_caloCluster=nullptr; + m_jets=nullptr; + m_tracks=nullptr; + m_vertices=nullptr; + m_muons=nullptr; + + // // see the base tool for all other status bits + // m_maskEMB_A_Missing = 0x00010000; // bit 16 + // m_maskEMB_C_Missing = 0x00020000; // bit 17 + // m_maskEME_A_Missing = 0x00040000; // bit 18 + // m_maskEME_C_Missing = 0x00080000; // bit 19 + // m_maskHEC_A_Missing = 0x00100000; // bit 20 + // m_maskHEC_C_Missing = 0x00200000; // bit 21 + // m_maskFCAL_A_Missing = 0x00400000; // bit 22 + // m_maskFCAL_C_Missing = 0x00800000; // bit 23 + // m_maskTileB_A_Missing = 0x01000000; // bit 24 + // m_maskTileB_C_Missing = 0x02000000; // bit 25 + // m_maskTileE_A_Missing = 0x04000000; // bit 26 + // m_maskTileE_C_Missing = 0x08000000; // bit 27 + + //Initialize some variables to make coverity happy, + //even though not needed in principle + + m_met=nullptr; + m_firsteventinrun=false; + m_n_sizePers=0; } ////////////////////////////////////////////////////////// HLT::ErrorCode EFMissingET::hltFinalize() { - return HLT::OK; + return HLT::OK; } ////////////////////////////////////////////////////////// HLT::ErrorCode EFMissingET::hltInitialize() { - // Initialize timers - if (doTiming() && m_doTimers) { - m_totTime=addTimer("EFMissingETInternalTotalTime"); - m_algTime=addTimer("EFMissingETtotalAlgToolTime"); - if (m_totTime==0 || m_algTime==0) { - ATH_MSG_WARNING( "not able to initialize timer!" ); + // Initialize timers + if (doTiming() && m_doTimers) { + m_totTime=addTimer("EFMissingETInternalTotalTime"); + m_algTime=addTimer("EFMissingETtotalAlgToolTime"); + if (m_totTime==0 || m_algTime==0) { + ATH_MSG_WARNING( "not able to initialize timer!" ); + } } - } - - ATH_MSG_DEBUG( "Initializing EFMissingET" ); - - if(m_tools.retrieve().isFailure() ) - ATH_MSG_ERROR( "Failed retrieve tools " << m_tools ); - else - ATH_MSG_DEBUG( "Successfully retrieve tools " << m_tools ); - - - int Nc = m_met_help->GetElements(); - int Nf = m_flags.size(); - if(Nf>0){ - ATH_MSG_INFO( "ComponentFlags has size " << Nf ); - if (Nf!=Nc) { - ATH_MSG_ERROR( "ComponentFlags has size different from the number " << Nc << " of components. Aborting" ); - return HLT::ERROR; - } else { - for (unsigned char i=0; i<Nf; ++i) { - if (m_flags[i]<0) - (m_met_help->GetComponent(i))->m_skip = true; - } + + ATH_MSG_DEBUG( "Initializing EFMissingET" ); + + if(m_tools.retrieve().isFailure() ) + ATH_MSG_ERROR( "Failed retrieve tools " << m_tools ); + else + ATH_MSG_DEBUG( "Successfully retrieve tools " << m_tools ); + + + int Nc = m_met_help->GetElements(); + int Nf = m_flags.size(); + if(Nf>0) { + ATH_MSG_INFO( "ComponentFlags has size " << Nf ); + if (Nf!=Nc) { + ATH_MSG_ERROR( "ComponentFlags has size different from the number " << Nc << " of components. Aborting" ); + return HLT::ERROR; + } else { + for (unsigned char i=0; i<Nf; ++i) { + if (m_flags[i]<0) + (m_met_help->GetComponent(i))->m_skip = true; + } + } } - } - - int N0 = m_calib0.size(); - if (N0>0) { - ATH_MSG_INFO( "ComponentCalib0 has size " << N0 ); - if (N0!=Nc) { - ATH_MSG_ERROR( "ComponentCalib0 has size different from the number " << Nc << " of components. Aborting" ); - return HLT::ERROR; - } else { - for (unsigned char i=0; i<N0; ++i) { - (m_met_help->GetComponent(i))->m_calib0 = m_calib0[i]; - } + + int N0 = m_calib0.size(); + if (N0>0) { + ATH_MSG_INFO( "ComponentCalib0 has size " << N0 ); + if (N0!=Nc) { + ATH_MSG_ERROR( "ComponentCalib0 has size different from the number " << Nc << " of components. Aborting" ); + return HLT::ERROR; + } else { + for (unsigned char i=0; i<N0; ++i) { + (m_met_help->GetComponent(i))->m_calib0 = m_calib0[i]; + } + } } - } - - int N1 = m_calib1.size(); - if (N1>0) { - ATH_MSG_INFO( "ComponentCalib1 has size " << N1 ); - if (N1!=Nc) { - ATH_MSG_ERROR( "ComponentCalib1 has size different from the number " << Nc << " of components. Aborting" ); - return HLT::ERROR; - } else { - for (unsigned char i=0; i<N1; ++i) { - (m_met_help->GetComponent(i))->m_calib1 = m_calib1[i]; - } + + int N1 = m_calib1.size(); + if (N1>0) { + ATH_MSG_INFO( "ComponentCalib1 has size " << N1 ); + if (N1!=Nc) { + ATH_MSG_ERROR( "ComponentCalib1 has size different from the number " << Nc << " of components. Aborting" ); + return HLT::ERROR; + } else { + for (unsigned char i=0; i<N1; ++i) { + (m_met_help->GetComponent(i))->m_calib1 = m_calib1[i]; + } + } } - } - return HLT::OK; + return HLT::OK; } ////////////////////////////////////////////////////////// -EFMissingET::~EFMissingET(){ - if (m_met_help) { - delete m_met_help; - m_met_help = nullptr; - } +EFMissingET::~EFMissingET() +{ + if (m_met_help) { + delete m_met_help; + m_met_help = nullptr; + } } ////////////////////////////////////////////////////////// -HLT::ErrorCode EFMissingET::hltStart() { +HLT::ErrorCode EFMissingET::hltStart() +{ - // access StoreGate - m_StoreGate = store(); - if (m_StoreGate==0) { - ATH_MSG_ERROR( "Can not access StoreGate" ); - return HLT::SG_ERROR; - } + ATH_MSG_DEBUG( " EFMissingET::hltStart() called " ); - // Check if configuration is sane - bool foundTopo = false; bool foundFEB = false; bool foundCell = false; bool foundJets = false; + // access StoreGate + m_StoreGate = store(); + if (m_StoreGate==0) { + ATH_MSG_ERROR( "Can not access StoreGate" ); + return HLT::SG_ERROR; + } - ATH_MSG_DEBUG( " loop through helper tools start " ); + // Check if configuration is sane + bool foundTopo = false; + bool foundFEB = false; + bool foundCell = false; + bool foundJets = false; - for (auto& tool : m_tools) { + ATH_MSG_DEBUG( " loop through helper tools start " ); - ATH_MSG_DEBUG( tool->name() ); + for (auto& tool : m_tools) { - if(tool->getFexType() == FexType::TOPO) foundTopo = true; - if(tool->getFexType() == FexType::CELL) foundCell = true; - if(tool->getFexType() == FexType::FEB) foundFEB = true; - if(tool->getFexType() == FexType::JET) foundJets = true; + ATH_MSG_DEBUG( tool->name() ); - } + if(tool->getFexType() == FexType::TOPO) foundTopo = true; + if(tool->getFexType() == FexType::CELL) foundCell = true; + if(tool->getFexType() == FexType::FEB) foundFEB = true; + if(tool->getFexType() == FexType::JET) foundJets = true; - if(foundTopo && (foundFEB || foundCell)) { - ATH_MSG_ERROR( "found topo. clusters AND Cells OR FEB - not a valid configuration .. aborting " ); - return HLT::ERROR; - } + } - if(m_doTopoClusters && !foundTopo) { - ATH_MSG_ERROR( "found topo. clusters config but no ClusterTool .. aborting " ); - return HLT::ERROR; - } + if(foundTopo && (foundFEB || foundCell)) { + ATH_MSG_ERROR( "found topo. clusters AND Cells OR FEB - not a valid configuration .. aborting " ); + return HLT::ERROR; + } - if(m_doJets && !foundJets) { - ATH_MSG_ERROR( "found jet config but no JetTool .. aborting " ); - return HLT::ERROR; - } + if(m_doTopoClusters && !foundTopo) { + ATH_MSG_ERROR( "found topo. clusters config but no ClusterTool .. aborting " ); + return HLT::ERROR; + } + if(m_doJets && !foundJets) { + if (!m_doTopoClusters) { + ATH_MSG_ERROR( "found jet config but no JetTool .. aborting " ); + return HLT::ERROR; + } + } - m_firsteventinrun = true; + m_firsteventinrun = true; - return HLT::OK; + return HLT::OK; } ////////////////////////////////////////////////////////// HLT::ErrorCode EFMissingET::hltExecute(std::vector<std::vector<HLT::TriggerElement*> >& tes_in, - unsigned int type_out) { - - if (doTiming() && m_doTimers && m_totTime) { - m_totTime->start(); - } + unsigned int type_out) +{ - // CACHING - if (m_useCachedResult) { // check whether we executed this instance before - ATH_MSG_DEBUG( "Executing this EFMissingET " << name() << " in cached mode" ); + if (doTiming() && m_doTimers && m_totTime) { + m_totTime->start(); + } - // Only count MET as an input TE (for seeding relation of navigation structure) - HLT::TEVec allTEs; - if ( (tes_in.size()>0) && (tes_in[0].size()>0) ) allTEs.push_back( tes_in[0][0] ); + // CACHING + if (m_useCachedResult) { // check whether we executed this instance before + ATH_MSG_DEBUG( "Executing this EFMissingET " << name() << " in cached mode" ); - // Create an output TE seeded by the inputs - HLT::TriggerElement* outputTE = config()->getNavigation()->addNode(allTEs, type_out); - outputTE->setActiveState(true); + // Only count MET as an input TE (for seeding relation of navigation structure) + HLT::TEVec allTEs; + if ( (tes_in.size()>0) && (tes_in[0].size()>0) ) allTEs.push_back( tes_in[0][0] ); - // save (cached) met feature to output TE: - m_config->getNavigation()->copyAllFeatures( m_cachedTE, outputTE ); + // Create an output TE seeded by the inputs + HLT::TriggerElement* outputTE = config()->getNavigation()->addNode(allTEs, type_out); + outputTE->setActiveState(true); - return HLT::OK; - } - - // start monitoring - beforeExecMonitors().ignore(); - - //initialize monitored variables to impossible values - m_mex_log = -9e9; - m_mey_log = -9e9; - m_mez_log = -9e9; - m_met_log = -9e9; - m_me_log = -9e9; - m_set_log = -9e9; - m_se_log = -9e9; - m_mex_lin = -9e9; - m_mey_lin = -9e9; - m_mez_lin = -9e9; - m_met_lin = -9e9; - m_me_lin = -9e9; - m_set_lin = -9e9; - m_se_lin = -9e9; - - m_xs = -9e9; - - m_phi = -9e9; - - m_tool_time_00 = 0; - m_tool_time_01 = 0; - m_tool_time_02 = 0; - m_tool_time_10 = 0; - m_tool_time_11 = 0; - m_tool_time_12 = 0; - m_tool_time_20 = 0; - m_tool_time_21 = 0; - m_tool_time_22 = 0; - m_tool_time_30 = 0; - m_tool_time_31 = 0; - m_tool_time_32 = 0; - // m_tool_time_TOT = 0; - m_tool_time_EM = 0; - m_tool_time_HEC = 0; - m_tool_time_Tile = 0; - m_tool_time_FCal = 0; - m_tool_time_RegSel = 0; - m_tool_time_LoadCol = 0; - m_tool_time_Loop = 0; - - m_jets = nullptr; - m_caloCluster = nullptr; - m_tracks=nullptr; - m_vertices=nullptr; - - ATH_MSG_DEBUG( "Executing EFMissingET::hltExecute()" ); - - if(m_firsteventinrun) { - ATH_MSG_DEBUG( "REGTEST: First event in run" ); - if (m_StoreGate) { - const xAOD::EventInfo* pEvent(0); - StatusCode sc = m_StoreGate->retrieve(pEvent); - if ( sc.isFailure() ) { - ATH_MSG_ERROR( "Cannot find xAOD::EventInfo object" ); - } else { - m_current_run_id = pEvent->runNumber(); - m_current_lbk_id = pEvent->lumiBlock(); - m_current_evt_id = pEvent->eventNumber(); - m_current_bcg_id = pEvent->bcid(); - char buff[512]; - snprintf(buff,512, - "REGTEST: Run number = %11u, luminosity block = %11u, event number = %11u, bunch crossing = %11u", - m_current_run_id, m_current_lbk_id, m_current_evt_id, m_current_bcg_id); - ATH_MSG_DEBUG( buff ); - - m_LArEMbarrelAside=true; - m_LArEMbarrelCside=true; - m_LArEMendCapAside=true; - m_LArEMendCapCside=true; - m_LArHECendCapAside=true; - m_LArHECendCapCside=true; - m_LArFCalAside=true; - m_LArFCalCside=true; - m_TileBarrelAside=true; - m_TileBarrelCside=true; - m_TileExtBarAside=true; - m_TileExtBarCside=true; - - if (m_decodeDetMask) { - uint64_t mask64 = pEvent->detectorMask(); - if(msgLvl(MSG::DEBUG) ){ - char buff[512]; - snprintf(buff,512,"REGTEST: DetMask_1 = 0x%08lu",mask64); - ATH_MSG_DEBUG( buff ); - } - - if (!(mask64==0)) { // 0 means present - - eformat::helper::DetectorMask dm(mask64); - m_LArEMbarrelAside = dm.is_set(eformat::LAR_EM_BARREL_A_SIDE); - m_LArEMbarrelCside = dm.is_set(eformat::LAR_EM_BARREL_C_SIDE); - m_LArEMendCapAside = dm.is_set(eformat::LAR_EM_ENDCAP_A_SIDE); - m_LArEMendCapCside = dm.is_set(eformat::LAR_EM_ENDCAP_C_SIDE); - m_LArHECendCapAside = dm.is_set(eformat::LAR_HAD_ENDCAP_A_SIDE); - m_LArHECendCapCside = dm.is_set(eformat::LAR_HAD_ENDCAP_C_SIDE); - m_LArFCalAside = dm.is_set(eformat::LAR_FCAL_A_SIDE); - m_LArFCalCside = dm.is_set(eformat::LAR_FCAL_C_SIDE); - m_TileBarrelAside = dm.is_set(eformat::TILECAL_BARREL_A_SIDE); - m_TileBarrelCside = dm.is_set(eformat::TILECAL_BARREL_C_SIDE); - m_TileExtBarAside = dm.is_set(eformat::TILECAL_EXT_A_SIDE); - m_TileExtBarCside = dm.is_set(eformat::TILECAL_EXT_C_SIDE); - - if (msgLvl(MSG::WARNING) ) { - if(!m_LArEMbarrelAside) ATH_MSG_WARNING( "LAR_EM_BARREL_A_SIDE is absent!" ); - if(!m_LArEMbarrelCside) ATH_MSG_WARNING( "LAR_EM_BARREL_C_SIDE is absent!" ); - if(!m_LArEMendCapAside) ATH_MSG_WARNING( "LAR_EM_ENDCAP_A_SIDE is absent!" ); - if(!m_LArEMendCapCside) ATH_MSG_WARNING( "LAR_EM_ENDCAP_C_SIDE is absent!" ); - if(!m_LArHECendCapAside) ATH_MSG_WARNING( "LAR_HAD_ENDCAP_A_SIDE is absent!" ); - if(!m_LArHECendCapCside) ATH_MSG_WARNING( "LAR_HAD_ENDCAP_C_SIDE is absent!" ); - if(!m_LArFCalAside) ATH_MSG_WARNING( "LAR_FCAL_A_SIDE is absent!" ); - if(!m_LArFCalCside) ATH_MSG_WARNING( "LAR_FCAL_C_SIDE is absent!" ); - if(!m_TileBarrelAside) ATH_MSG_WARNING( "TILECAL_BARREL_A_SIDE is absent!" ); - if(!m_TileBarrelCside) ATH_MSG_WARNING( "TILECAL_BARREL_C_SIDE is absent!" ); - if(!m_TileExtBarAside) ATH_MSG_WARNING( "TILECAL_EXT_A_SIDE is absent!" ); - if(!m_TileExtBarCside) ATH_MSG_WARNING( "TILECAL_EXT_C_SIDE is absent!" ); - } + // save (cached) met feature to output TE: + m_config->getNavigation()->copyAllFeatures( m_cachedTE, outputTE ); - } // end of setting flags for non-zero mask - } // end of decoding detector mask - } + return HLT::OK; } - m_firsteventinrun=false; - } // done processing for first event in the run - - // do the real job - HLT::ErrorCode status = makeMissingET(tes_in); - if(status != HLT::OK){ - delete m_met; - m_met = nullptr; - ATH_MSG_ERROR( "EFMissingET::makeOutputTE returned Failure" ); - return HLT::ERROR; - } + // start monitoring + beforeExecMonitors().ignore(); + + //initialize monitored variables to impossible values + m_mex_log = -9e9; + m_mey_log = -9e9; + m_mez_log = -9e9; + m_met_log = -9e9; + m_me_log = -9e9; + m_set_log = -9e9; + m_se_log = -9e9; + m_mex_lin = -9e9; + m_mey_lin = -9e9; + m_mez_lin = -9e9; + m_met_lin = -9e9; + m_me_lin = -9e9; + m_set_lin = -9e9; + m_se_lin = -9e9; + + m_xs = -9e9; + + m_phi = -9e9; + + m_tool_time_00 = 0; + m_tool_time_01 = 0; + m_tool_time_02 = 0; + m_tool_time_10 = 0; + m_tool_time_11 = 0; + m_tool_time_12 = 0; + m_tool_time_20 = 0; + m_tool_time_21 = 0; + m_tool_time_22 = 0; + m_tool_time_30 = 0; + m_tool_time_31 = 0; + m_tool_time_32 = 0; + // m_tool_time_TOT = 0; + m_tool_time_EM = 0; + m_tool_time_HEC = 0; + m_tool_time_Tile = 0; + m_tool_time_FCal = 0; + m_tool_time_RegSel = 0; + m_tool_time_LoadCol = 0; + m_tool_time_Loop = 0; + + m_jets = nullptr; + m_caloCluster = nullptr; + m_tracks=nullptr; + m_vertices=nullptr; + m_muons=nullptr; + + ATH_MSG_DEBUG( "Executing EFMissingET::hltExecute()" ); + + if(m_firsteventinrun) { + ATH_MSG_DEBUG( "REGTEST: First event in run" ); + if (m_StoreGate) { + const xAOD::EventInfo* pEvent(0); + StatusCode sc = m_StoreGate->retrieve(pEvent); + if ( sc.isFailure() ) { + ATH_MSG_ERROR( "Cannot find xAOD::EventInfo object" ); + } else { + m_current_run_id = pEvent->runNumber(); + m_current_lbk_id = pEvent->lumiBlock(); + m_current_evt_id = pEvent->eventNumber(); + m_current_bcg_id = pEvent->bcid(); + char buff[512]; + snprintf(buff,512, + "REGTEST: Run number = %11u, luminosity block = %11u, event number = %11u, bunch crossing = %11u", + m_current_run_id, m_current_lbk_id, m_current_evt_id, m_current_bcg_id); + ATH_MSG_DEBUG( buff ); + + m_LArEMbarrelAside=true; + m_LArEMbarrelCside=true; + m_LArEMendCapAside=true; + m_LArEMendCapCside=true; + m_LArHECendCapAside=true; + m_LArHECendCapCside=true; + m_LArFCalAside=true; + m_LArFCalCside=true; + m_TileBarrelAside=true; + m_TileBarrelCside=true; + m_TileExtBarAside=true; + m_TileExtBarCside=true; + + if (m_decodeDetMask) { + uint64_t mask64 = pEvent->detectorMask(); + if(msgLvl(MSG::DEBUG) ) { + char buff[512]; + snprintf(buff,512,"REGTEST: DetMask_1 = 0x%08lu",mask64); + ATH_MSG_DEBUG( buff ); + } + + if (!(mask64==0)) { // 0 means present + + eformat::helper::DetectorMask dm(mask64); + m_LArEMbarrelAside = dm.is_set(eformat::LAR_EM_BARREL_A_SIDE); + m_LArEMbarrelCside = dm.is_set(eformat::LAR_EM_BARREL_C_SIDE); + m_LArEMendCapAside = dm.is_set(eformat::LAR_EM_ENDCAP_A_SIDE); + m_LArEMendCapCside = dm.is_set(eformat::LAR_EM_ENDCAP_C_SIDE); + m_LArHECendCapAside = dm.is_set(eformat::LAR_HAD_ENDCAP_A_SIDE); + m_LArHECendCapCside = dm.is_set(eformat::LAR_HAD_ENDCAP_C_SIDE); + m_LArFCalAside = dm.is_set(eformat::LAR_FCAL_A_SIDE); + m_LArFCalCside = dm.is_set(eformat::LAR_FCAL_C_SIDE); + m_TileBarrelAside = dm.is_set(eformat::TILECAL_BARREL_A_SIDE); + m_TileBarrelCside = dm.is_set(eformat::TILECAL_BARREL_C_SIDE); + m_TileExtBarAside = dm.is_set(eformat::TILECAL_EXT_A_SIDE); + m_TileExtBarCside = dm.is_set(eformat::TILECAL_EXT_C_SIDE); + + if (msgLvl(MSG::WARNING) ) { + if(!m_LArEMbarrelAside) ATH_MSG_WARNING( "LAR_EM_BARREL_A_SIDE is absent!" ); + if(!m_LArEMbarrelCside) ATH_MSG_WARNING( "LAR_EM_BARREL_C_SIDE is absent!" ); + if(!m_LArEMendCapAside) ATH_MSG_WARNING( "LAR_EM_ENDCAP_A_SIDE is absent!" ); + if(!m_LArEMendCapCside) ATH_MSG_WARNING( "LAR_EM_ENDCAP_C_SIDE is absent!" ); + if(!m_LArHECendCapAside) ATH_MSG_WARNING( "LAR_HAD_ENDCAP_A_SIDE is absent!" ); + if(!m_LArHECendCapCside) ATH_MSG_WARNING( "LAR_HAD_ENDCAP_C_SIDE is absent!" ); + if(!m_LArFCalAside) ATH_MSG_WARNING( "LAR_FCAL_A_SIDE is absent!" ); + if(!m_LArFCalCside) ATH_MSG_WARNING( "LAR_FCAL_C_SIDE is absent!" ); + if(!m_TileBarrelAside) ATH_MSG_WARNING( "TILECAL_BARREL_A_SIDE is absent!" ); + if(!m_TileBarrelCside) ATH_MSG_WARNING( "TILECAL_BARREL_C_SIDE is absent!" ); + if(!m_TileExtBarAside) ATH_MSG_WARNING( "TILECAL_EXT_A_SIDE is absent!" ); + if(!m_TileExtBarCside) ATH_MSG_WARNING( "TILECAL_EXT_C_SIDE is absent!" ); + } + + } // end of setting flags for non-zero mask + } // end of decoding detector mask + } + } + m_firsteventinrun=false; + } // done processing for first event in the run + + // do the real job + HLT::ErrorCode status = makeMissingET(tes_in); + + if(status != HLT::OK) { + delete m_met; + m_met = nullptr; + ATH_MSG_ERROR( "EFMissingET::makeOutputTE returned Failure" ); + return HLT::ERROR; + } - // create output trigger element - status = makeOutputTE(tes_in, type_out); + // create output trigger element + status = makeOutputTE(tes_in, type_out); - if (doTiming() && m_doTimers && m_totTime) { - m_totTime->stop(); - } + if (doTiming() && m_doTimers && m_totTime) { + m_totTime->stop(); + } - // stop monitoring - afterExecMonitors().ignore(); + // stop monitoring + afterExecMonitors().ignore(); - return HLT::OK; + return HLT::OK; } /////////////////////////////////////////// @@ -516,367 +531,507 @@ HLT::ErrorCode EFMissingET::hltExecute(std::vector<std::vector<HLT::TriggerEleme HLT::ErrorCode EFMissingET::makeMissingET(std::vector<std::vector<HLT::TriggerElement*> >& tes_in) { - if(m_doTopoClusters == false && m_doJets == false && m_doJets == false) - m_n_sizePers = 25; - else if(m_doJets == true) - m_n_sizePers = 6; - else if(m_doPUC == true) - m_n_sizePers = 3; - else - m_n_sizePers = 9; - - - // Setup xAOD EDM - m_met = new xAOD::TrigMissingET(); m_met->makePrivateStore(); - - std::vector <std::string> vs_aux; - for(int i = 0; i < m_n_sizePers; i++) - vs_aux.push_back(""); - - m_met->defineComponents(vs_aux); - - ATH_MSG_DEBUG (" Created pers. object of size " << m_n_sizePers); - - // fetch topo. clusters for later use - if (m_doTopoClusters && tes_in.size() > 0) { // safe-guard - for (const auto& te_in : tes_in.at(0) ) { - HLT::ErrorCode status = getFeature( te_in , m_caloCluster ); - - if(status!=HLT::OK || !m_caloCluster) { - // Changed to prevent abortions of combined chains during cosmic data taking - // This should not be in during collisions - //ATH_MSG_ERROR( "Failed to get ClusterContainer" ); return HLT::NAV_ERROR; - ATH_MSG_ERROR( "Failed to get ClusterContainer" ); return HLT::OK; - } else { - ATH_MSG_DEBUG( "size of cluster container " << m_caloCluster->size() ); - } - - } // end loop over topoclusters - } // fetched all topo. clusters - - // fetch jets for later use - if (m_doJets && tes_in.size() > 0) { // safe-guard - for (const auto& te_in : tes_in.at(0) ) { - HLT::ErrorCode status = getFeature( te_in , m_jets ); - - if(status!=HLT::OK || !m_jets) { - ATH_MSG_ERROR( "Failed to get Jets" ); return HLT::NAV_ERROR; - } else { - if (msgLvl(MSG::DEBUG) ) { - ATH_MSG_DEBUG( "size of jet container " << m_jets->size() ); - for (const auto& ijet : *m_jets) - ATH_MSG_DEBUG( " Jet E, eta, phi: " << ijet->e()<<", "<< ijet->eta()<<", "<< ijet->phi() ); - } - } - - } // end loop over topoclusters - } // fetched all topo. clusters + if(m_doTopoClusters == false && m_doJets == false) + m_n_sizePers = 25; + else if(m_doTopoClusters == true && m_doJets == true && m_doTracks==true) + m_n_sizePers = 3; + else if(m_doJets == true) + m_n_sizePers = 6; + else if(m_doPUC == true) + m_n_sizePers = 3; + else + m_n_sizePers = 9; - //fetch tracks for later use - if (m_doJets && m_doTracks && tes_in.size() > 0) { // safe-guard - for (const auto& te_in : tes_in.at(1) ) { - HLT::ErrorCode status = getFeature( te_in , m_tracks ); + if(m_doTrackTopoClusters) m_n_sizePers = 9; - if(status!=HLT::OK || !m_tracks) { - ATH_MSG_ERROR( "Failed to get tracks" ); return HLT::NAV_ERROR; - } else { - if (msgLvl(MSG::DEBUG) ) { - ATH_MSG_DEBUG( "size of track container " << m_tracks->size() ); - for (const auto& itrack : *m_tracks) - ATH_MSG_DEBUG( " Track pt, eta, phi, z0, vz: " << itrack->pt()<<", "<< itrack->eta()<<", "<< itrack->phi() << ", " - << fabs(itrack->z0()) << ", " << itrack->vz() ); - } - } + // Setup xAOD EDM + m_met = new xAOD::TrigMissingET(); + m_met->makePrivateStore(); - } // end loop over topoclusters - } // fetched all topo. clusters + std::vector <std::string> vs_aux; + for(int i = 0; i < m_n_sizePers; i++) + vs_aux.push_back(""); + m_met->defineComponents(vs_aux); + ATH_MSG_DEBUG (" Created pers. object of size " << m_n_sizePers); + ConstDataVector<xAOD::TrackParticleContainer> v_ttracks (SG::VIEW_ELEMENTS);//Define a track container for Pufit track + // fetch topo. clusters for later use + if (m_doTopoClusters && tes_in.size() > 0) { // safe-guard + for (const auto& te_in : tes_in.at(0) ) { + HLT::ErrorCode status = getFeature( te_in , m_caloCluster ); - //fetch vertex for later use - if (m_doJets && m_doTracks && tes_in.size() > 0) { // safe-guard - for (const auto& te_in : tes_in.at(1) ) { - HLT::ErrorCode status = getFeature( te_in , m_vertices ); - - if(status!=HLT::OK || !m_vertices) { - ATH_MSG_ERROR( "Failed to get vertices" ); return HLT::NAV_ERROR; - } else { - if (msgLvl(MSG::DEBUG) ) { - ATH_MSG_DEBUG( "size of vertex container " << m_vertices->size() ); - for (const xAOD::Vertex* ivtx : *m_vertices) - ATH_MSG_DEBUG( " Vertex x, y, z, ntracks: " << ivtx->x()<<", "<< ivtx->y()<<", "<< ivtx->z() << ", " - << ivtx->nTrackParticles() ); + if(status!=HLT::OK || !m_caloCluster) { + // Changed to prevent abortions of combined chains during cosmic data taking + // This should not be in during collisions + //ATH_MSG_ERROR( "Failed to get ClusterContainer" ); return HLT::NAV_ERROR; + ATH_MSG_ERROR( "Failed to get ClusterContainer" ); + return HLT::OK; + } else { + ATH_MSG_DEBUG( "size of cluster container " << m_caloCluster->size() ); } - } - - } // end loop over topoclusters - } // fetched all topo. clusters + } // end loop over topoclusters + + if (m_doJetVeto && tes_in.size() > 0) { + for (const auto& te_in : tes_in.at(1) ) { + HLT::ErrorCode status = getFeature( te_in , m_jets ); + + if(status!=HLT::OK || !m_jets) { + ATH_MSG_ERROR( "Failed to get Jets" ); + return HLT::NAV_ERROR; + } else { + if (msgLvl(MSG::DEBUG) ) { + ATH_MSG_INFO( "size of jet container " << m_jets->size() ); + for (const auto& ijet : *m_jets) + ATH_MSG_INFO( " Jet E, eta, phi: " << ijet->e()<<", "<< ijet->eta()<<", "<< ijet->phi() ); + } + } + } + } + + if (m_doJets && m_doTracks && tes_in.size() > 0) { + for (const auto& te_in : tes_in.at(1) ) { + HLT::ErrorCode status = getFeature( te_in , m_jets ); + + if(status!=HLT::OK || !m_jets) { + ATH_MSG_ERROR( "Failed to get Jets" ); + return HLT::NAV_ERROR; + } else { + if (msgLvl(MSG::DEBUG) ) { + ATH_MSG_DEBUG( "size of jet container " << m_jets->size() ); + for (const auto& ijet : *m_jets) + ATH_MSG_DEBUG( " Jet E, eta, phi: " << ijet->e()<<", "<< ijet->eta()<<", "<< ijet->phi() ); + } + } + } + if(tes_in.size()>3) { + //This section is for 4 tes, like in the case of pufit track + const xAOD::TrackParticleContainer* tempTracks; + for (const auto& te_in : tes_in.at(2) ) { + HLT::ErrorCode status_trk = getFeature( te_in , tempTracks); + + if(status_trk!=HLT::OK || !tempTracks) { + ATH_MSG_ERROR( "Failed to get tracks" ); + return HLT::NAV_ERROR; + } else { + // v_ttracks.push_back(tempTracks); + ATH_MSG_DEBUG( "size of track container " << tempTracks->size() ); + for (const auto& itrack : *tempTracks) { + v_ttracks.push_back(itrack); + ATH_MSG_DEBUG( " Track pt, eta, phi, vertex, z0, vz: " << itrack->pt()<<", "<< itrack->eta()<<", "<< itrack->phi() << ", " + << fabs(itrack->z0()) << ", " << itrack->vz() ); + } + }//correctly retrived the tracks + }//retrieve te2 + m_tracks = v_ttracks.asDataVector(); + std::vector<const xAOD::TrackParticle*> TracksVec(m_tracks->begin(), m_tracks->end()); + ATH_MSG_DEBUG( "num of tracks in datavector: " << TracksVec.size() ); + for (const xAOD::TrackParticle* trk : TracksVec) { + ATH_MSG_DEBUG("tracks " << trk->pt() << "," << trk->eta() << ","<<trk->phi() ); + } + + ATH_MSG_DEBUG( "size of track container" << m_tracks->size()); + for (const auto& te_in : tes_in.at(3) ) { + HLT::ErrorCode status_vtx = getFeature( te_in , m_vertices ); + if(status_vtx!=HLT::OK || !m_vertices) { + ATH_MSG_ERROR( "Failed to get vertices" ); + return HLT::NAV_ERROR; + } + }//retrieve te3 + }//more than 3 tes (0-3) + else { + //this section is for track mht + for (const auto& te_in : tes_in.at(2) ) { + HLT::ErrorCode status_trk = getFeature( te_in , m_tracks ); + + if(status_trk!=HLT::OK || !m_tracks) { + ATH_MSG_ERROR( "Failed to get tracks" ); + return HLT::NAV_ERROR; + } else { + if (msgLvl(MSG::DEBUG) ) { + ATH_MSG_DEBUG( "size of track container " << m_tracks->size() ); + } + } + //The vertex container is part of the same TE as the tracks + HLT::ErrorCode status_vtx = getFeature( te_in , m_vertices ); + + if(status_vtx!=HLT::OK || !m_vertices) { + ATH_MSG_ERROR( "Failed to get vertices" ); + return HLT::NAV_ERROR; + } else { + if (msgLvl(MSG::DEBUG) ) { + ATH_MSG_DEBUG( "size of vertex container " << m_vertices->size() ); + } + } + }//retrieve te2, this gets tracks and vertex container for track mht + }//only 3 tes, for track mht + }//do jets and tracks + } else { // fetched all topo. clusters + + + // fetched all topo. clusters + if (m_doTrackTopoClusters && tes_in.size() > 0) { // safe-guard + for (const auto& te_in : tes_in.at(0) ) { + HLT::ErrorCode status = getFeature( te_in , m_caloCluster ); + + if(status!=HLT::OK || !m_caloCluster) { + // Changed to prevent abortions of combined chains during cosmic data taking + // This should not be in during collisions + //ATH_MSG_ERROR( "Failed to get ClusterContainer" ); return HLT::NAV_ERROR; + ATH_MSG_ERROR( "Failed to get ClusterContainer" ); + return HLT::OK; + } else { + ATH_MSG_DEBUG( "size of cluster container " << m_caloCluster->size() ); + } + + } // end loop over topoclusters + } + + // fetch jets for later use + if (m_doJets && tes_in.size() > 0) { // safe-guard + for (const auto& te_in : tes_in.at(0) ) { + HLT::ErrorCode status = getFeature( te_in , m_jets ); + + if(status!=HLT::OK || !m_jets) { + ATH_MSG_ERROR( "Failed to get Jets" ); + return HLT::NAV_ERROR; + } else { + if (msgLvl(MSG::DEBUG) ) { + ATH_MSG_DEBUG( "size of jet container " << m_jets->size() ); + for (const auto& ijet : *m_jets) + ATH_MSG_DEBUG( " Jet E, eta, phi: " << ijet->e()<<", "<< ijet->eta()<<", "<< ijet->phi() ); + } + } + + } // end loop over jets + } // fetched all jets + + + //fetch tracks for later use + if ((m_doJets||m_doTrackTopoClusters) && m_doTracks && tes_in.size() > 0) { // safe-guard + for (const auto& te_in : tes_in.at(1) ) { + HLT::ErrorCode status = getFeature( te_in , m_tracks ); + + if(status!=HLT::OK || !m_tracks) { + ATH_MSG_ERROR( "Failed to get tracks" ); + return HLT::NAV_ERROR; + } else { + if (msgLvl(MSG::DEBUG) ) { + ATH_MSG_DEBUG( "size of track container " << m_tracks->size() ); + } + } + + } // end loop over tracks + } // fetched all tracks + + + + //fetch vertex for later use + if ((m_doJets||m_doTrackTopoClusters) && m_doTracks && tes_in.size() > 0) { // safe-guard + for (const auto& te_in : tes_in.at(1) ) { + HLT::ErrorCode status = getFeature( te_in , m_vertices ); + + if(status!=HLT::OK || !m_vertices) { + ATH_MSG_ERROR( "Failed to get vertices" ); + return HLT::NAV_ERROR; + } else { + if (msgLvl(MSG::DEBUG) ) { + ATH_MSG_DEBUG( "size of vertex container " << m_vertices->size() ); + } + } + + } // end loop over vertex + } // fetched all vertex + + + //fetch muons for later use + if ((m_doJets||m_doTrackTopoClusters) && m_doTracks && tes_in.size() > 2) { // safe-guard + for (HLT::TEVec::const_iterator it = tes_in[2].begin(); it != tes_in[2].end(); ++it) { + HLT::ErrorCode status = getFeature( (*it) , m_muons ); + + if(status==HLT::OK && m_muons!=nullptr) { + if (msgLvl() <= MSG::DEBUG) { + ATH_MSG_DEBUG( "size of muon container " << m_muons->size() ); + for (xAOD::MuonContainer::const_iterator it = m_muons->begin(); it != m_muons->end(); ++it ) + ATH_MSG_DEBUG( " Muon pt, eta, phi: " << (*it)->pt()/1000.<<", "<< (*it)->eta()<<", "<< (*it)->phi() ); + } + } + + } // end loop muons + } // fetched all muons + } - if(m_doTopoClusters && !m_caloCluster) { // check if one should process topo. clusters and if pointer is present - ATH_MSG_INFO( " Error: configured to run over topo. clusters but no TriggerElement was passed to the FEX -- check menu configuration!! " ); - return HLT::ERROR; - } - - if(m_doJets && !m_jets) { // check if one should process jets and if pointer is present - ATH_MSG_INFO( " Error: configured to run over jets but no TriggerElement was passed to the FEX -- check menu configuration!! " ); - return HLT::ERROR; - } - - if(m_doTracks && (!m_tracks || !m_vertices)) { // check if one should process jets and if pointer is present - ATH_MSG_INFO( " Error: configured to run over tracks and jets but no TriggerElement was passed to the FEX -- check menu configuration!! " ); - return HLT::ERROR; - } + if(m_doTopoClusters && !m_caloCluster) { // check if one should process topo. clusters and if pointer is present + ATH_MSG_INFO( " Error: configured to run over topo. clusters but no TriggerElement was passed to the FEX -- check menu configuration!! " ); + return HLT::ERROR; + } - if (doTiming() && m_doTimers && m_algTime) { - m_algTime->start(); - } + if(m_doJets && !m_jets) { // check if one should process jets and if pointer is present + ATH_MSG_INFO( " Error: configured to run over jets but no TriggerElement was passed to the FEX -- check menu configuration!! " ); + return HLT::ERROR; + } - /// clear transient-only helper object - m_met_help->Reset(); + if(m_doTracks && (!m_tracks || !m_vertices)) { // check if one should process jets and if pointer is present + ATH_MSG_INFO( " Error: configured to run over tracks and jets but no TriggerElement was passed to the FEX -- check menu configuration!! " ); + return HLT::ERROR; + } - // // encode DetMask info in the status flag - // int flag=m_met_help->GetStatus(); + if(m_doTrackTopoClusters && ( !m_caloCluster || !m_tracks || !m_vertices)) { // check if one should process jets and if pointer is present + ATH_MSG_INFO( " Error: configured to run over tracks and TopoClusters but no TriggerElement was passed to the FEX -- check menu configuration!! " ); + return HLT::ERROR; + } - // if (!m_LArEMbarrelAside) flag |= m_maskEMB_A_Missing; - // if (!m_LArEMbarrelCside) flag |= m_maskEMB_C_Missing; - // if (!m_LArEMendCapAside) flag |= m_maskEME_A_Missing; - // if (!m_LArEMendCapCside) flag |= m_maskEME_C_Missing; - // if (!m_LArHECendCapAside) flag |= m_maskHEC_A_Missing; - // if (!m_LArHECendCapCside) flag |= m_maskHEC_C_Missing; - // if (!m_LArFCalAside) flag |= m_maskFCAL_A_Missing; - // if (!m_LArFCalCside) flag |= m_maskFCAL_C_Missing; - // if (!m_TileBarrelAside) flag |= m_maskTileB_A_Missing; - // if (!m_TileBarrelCside) flag |= m_maskTileB_C_Missing; - // if (!m_TileExtBarAside) flag |= m_maskTileE_A_Missing; - // if (!m_TileExtBarCside) flag |= m_maskTileE_C_Missing; + if (doTiming() && m_doTimers && m_algTime) { + m_algTime->start(); + } - // m_met_help->SetStatus(flag); + /// clear transient-only helper object + m_met_help->Reset(); - //unsigned short m_tmp_maskProcessing = 0x0001; // bit 0 - //unsigned short m_tmp_maskProcessed = 0x4000; // bit 14 + // // encode DetMask info in the status flag + // int flag=m_met_help->GetStatus(); - /// loop over tools - for (auto& tool : m_tools) { + // if (!m_LArEMbarrelAside) flag |= m_maskEMB_A_Missing; + // if (!m_LArEMbarrelCside) flag |= m_maskEMB_C_Missing; + // if (!m_LArEMendCapAside) flag |= m_maskEME_A_Missing; + // if (!m_LArEMendCapCside) flag |= m_maskEME_C_Missing; + // if (!m_LArHECendCapAside) flag |= m_maskHEC_A_Missing; + // if (!m_LArHECendCapCside) flag |= m_maskHEC_C_Missing; + // if (!m_LArFCalAside) flag |= m_maskFCAL_A_Missing; + // if (!m_LArFCalCside) flag |= m_maskFCAL_C_Missing; + // if (!m_TileBarrelAside) flag |= m_maskTileB_A_Missing; + // if (!m_TileBarrelCside) flag |= m_maskTileB_C_Missing; + // if (!m_TileExtBarAside) flag |= m_maskTileE_A_Missing; + // if (!m_TileExtBarCside) flag |= m_maskTileE_C_Missing; - if ( tool->execute(m_met, m_met_help, m_caloCluster,m_jets, m_tracks, m_vertices).isFailure() ) { - ATH_MSG_ERROR( "EFMissingET AlgTool returned Failure" ); - return HLT::ERROR; - } + // m_met_help->SetStatus(flag); + //unsigned short m_tmp_maskProcessing = 0x0001; // bit 0 + //unsigned short m_tmp_maskProcessed = 0x4000; // bit 14 - if (doTiming() && m_doTimers) { - float timer[4][3]={{0,0,0},{0,0,0},{0,0,0},{0,0,0}}; + /// loop over tools + for (auto& tool : m_tools) { - for (int iDet=0; iDet<4; ++iDet){ // loop on detector - for (int iStep=0; iStep<3; ++iStep) { // loop on step - if ( tool->getTime(iDet, iStep, &timer[iDet][iStep]).isFailure() ) { - ATH_MSG_ERROR( "EFMissingET AlgTool timer returned Failure" ); + if ( tool->execute(m_met, m_met_help, m_caloCluster,m_jets, m_tracks, m_vertices, m_muons).isFailure() ) { + ATH_MSG_ERROR( "EFMissingET AlgTool returned Failure" ); return HLT::ERROR; - } - } // loop on step - } // loop on detector - - m_tool_time_00 += timer[0][0]; - m_tool_time_01 += timer[0][1]; - m_tool_time_02 += timer[0][2]; - m_tool_time_10 += timer[1][0]; - m_tool_time_11 += timer[1][1]; - m_tool_time_12 += timer[1][2]; - m_tool_time_20 += timer[2][0]; - m_tool_time_21 += timer[2][1]; - m_tool_time_22 += timer[2][2]; - m_tool_time_30 += timer[3][0]; - m_tool_time_31 += timer[3][1]; - m_tool_time_32 += timer[3][2]; - - m_tool_time_EM += timer[0][0] + timer[0][1] + timer[0][2]; - m_tool_time_HEC += timer[1][0] + timer[1][1] + timer[1][2]; - m_tool_time_Tile += timer[2][0] + timer[2][1] + timer[2][2]; - m_tool_time_FCal += timer[3][0] + timer[3][1] + timer[3][2]; - m_tool_time_RegSel += timer[0][0] + timer[1][0] + timer[2][0] + timer[3][0]; - m_tool_time_LoadCol += timer[0][1] + timer[1][1] + timer[2][1] + timer[3][1]; - m_tool_time_Loop += timer[0][2] + timer[1][2] + timer[2][2] + timer[3][2]; - - } // timers - } // loop on tools - - // m_tool_time_TOT=m_tool_time_RegSel+m_tool_time_LoadCol+m_tool_time_Loop; - - if (doTiming() && m_doTimers && m_algTime) { - m_algTime->stop(); - } - - float ETx = m_met->ex(); - float ETy = m_met->ey(); - float MET = sqrt(ETx*ETx+ETy*ETy); - float SET = m_met->sumEt(); - - if(msgLvl(MSG::DEBUG) ) { - if (m_StoreGate) { - const xAOD::EventInfo* pEvent(0); - StatusCode sc = m_StoreGate->retrieve(pEvent); - if ( sc.isFailure() ) { - ATH_MSG_ERROR( "Cannot find xAOD::EventInfo object" ); - } else { - m_current_run_id = pEvent->runNumber(); - m_current_lbk_id = pEvent->lumiBlock(); - m_current_evt_id = pEvent->eventNumber(); - m_current_bcg_id = pEvent->bcid(); - char buff[512]; - snprintf(buff,512, - "REGTEST: Run number = %11u, luminosity block = %11u, event number = %11u, bunch crossing = %11u", - m_current_run_id, m_current_lbk_id, m_current_evt_id, m_current_bcg_id); - ATH_MSG_DEBUG( buff ); - } + } + + + if (doTiming() && m_doTimers) { + float timer[4][3]= {{0,0,0},{0,0,0},{0,0,0},{0,0,0}}; + + for (int iDet=0; iDet<4; ++iDet) { // loop on detector + for (int iStep=0; iStep<3; ++iStep) { // loop on step + if ( tool->getTime(iDet, iStep, &timer[iDet][iStep]).isFailure() ) { + ATH_MSG_ERROR( "EFMissingET AlgTool timer returned Failure" ); + return HLT::ERROR; + } + } // loop on step + } // loop on detector + + m_tool_time_00 += timer[0][0]; + m_tool_time_01 += timer[0][1]; + m_tool_time_02 += timer[0][2]; + m_tool_time_10 += timer[1][0]; + m_tool_time_11 += timer[1][1]; + m_tool_time_12 += timer[1][2]; + m_tool_time_20 += timer[2][0]; + m_tool_time_21 += timer[2][1]; + m_tool_time_22 += timer[2][2]; + m_tool_time_30 += timer[3][0]; + m_tool_time_31 += timer[3][1]; + m_tool_time_32 += timer[3][2]; + + m_tool_time_EM += timer[0][0] + timer[0][1] + timer[0][2]; + m_tool_time_HEC += timer[1][0] + timer[1][1] + timer[1][2]; + m_tool_time_Tile += timer[2][0] + timer[2][1] + timer[2][2]; + m_tool_time_FCal += timer[3][0] + timer[3][1] + timer[3][2]; + m_tool_time_RegSel += timer[0][0] + timer[1][0] + timer[2][0] + timer[3][0]; + m_tool_time_LoadCol += timer[0][1] + timer[1][1] + timer[2][1] + timer[3][1]; + m_tool_time_Loop += timer[0][2] + timer[1][2] + timer[2][2] + timer[3][2]; + + } // timers + } // loop on tools + + // m_tool_time_TOT=m_tool_time_RegSel+m_tool_time_LoadCol+m_tool_time_Loop; + + if (doTiming() && m_doTimers && m_algTime) { + m_algTime->stop(); } - ATH_MSG_DEBUG( "Transient object follows " ); - ATH_MSG_DEBUG( "REGTEST: (EF) Lvl1Id = " << config()->getLvl1Id() ); - ATH_MSG_DEBUG( *m_met_help ); // transient object - } - - // monitored values (in GeV or rad) - m_phi = atan2f(ETy, ETx); - m_mex_lin = ETx * 1e-3; - m_mey_lin = ETy * 1e-3; - m_mez_lin = m_met->ez() * 1e-3; - m_met_lin = MET * 1e-3; - m_me_lin = sqrt(m_mex_lin*m_mex_lin+m_mey_lin*m_mey_lin+m_mez_lin*m_mez_lin); - m_set_lin = SET * 1e-3; // NB: might be negative - m_se_lin = m_met->sumE() * 1e-3; // NB: might be negative - - float epsilon = 1e-6; // 1 keV - if (m_set_lin > epsilon) m_xs = m_met_lin / sqrt(m_set_lin); - - // never compare a float with zero: - epsilon = 1e-6; // 1 keV - if (m_me_lin>epsilon) m_me_log = log10(fabsf(m_me_lin)); // underflow otherwise - - epsilon=1.189; // GeV (see TrigEFMissingETMonitoring.py) - if (fabsf(m_mex_lin)>epsilon) - m_mex_log = copysign(log10f(fabsf(m_mex_lin)), m_mex_lin); - else - m_mex_log = 0; - if (fabsf(m_mey_lin)>epsilon) - m_mey_log = copysign(log10f(fabsf(m_mey_lin)), m_mey_lin); - else - m_mey_log = 0; - if (fabsf(m_mez_lin)>epsilon) - m_mez_log = copysign(log10f(fabsf(m_mez_lin)), m_mez_lin); - else - m_mez_log = 0; - if (fabsf(m_set_lin)>epsilon) - m_set_log = copysign(log10f(fabsf(m_set_lin)), m_set_lin); - else - m_set_log = 0; - if (fabsf(m_se_lin)>epsilon) - m_se_log = copysign(log10f(fabsf(m_se_lin)), m_se_lin); - else - m_se_log = 0; - if (fabsf(m_met_lin)>epsilon) // positive definite - m_met_log = log10f(fabsf(m_met_lin)); - else - m_met_log = -9e9; // underflow - - // monitoring: status flag - for (int i=0; i<32; ++i) { - unsigned mask = (1<<i); - if (m_met->flag() & mask) - m_status_flag[i] = 1; - else - m_status_flag[i] = 0; - } - - for (unsigned char i=0; i<m_met_help->GetElements(); ++i) { - TrigEFMissingEtComponent* metComp=m_met_help->GetComponent(i); - float ex = metComp->m_ex * 1e-3; // GeV - float ey = metComp->m_ey * 1e-3; // GeV - float ez = metComp->m_ez * 1e-3; // GeV - float et = sqrt(ex*ex+ey*ey); - float sumEt = metComp->m_sumEt * 1e-3; // GeV - float sumE = metComp->m_sumE * 1e-3; // GeV - - if (fabsf(ex)>epsilon) - m_comp_ex_log[i] = copysign(log10f(fabsf(ex)), ex); + + float ETx = m_met->ex(); + float ETy = m_met->ey(); + float MET = sqrt(ETx*ETx+ETy*ETy); + float SET = m_met->sumEt(); + + if(msgLvl(MSG::DEBUG) ) { + if (m_StoreGate) { + const xAOD::EventInfo* pEvent(0); + StatusCode sc = m_StoreGate->retrieve(pEvent); + if ( sc.isFailure() ) { + ATH_MSG_ERROR( "Cannot find xAOD::EventInfo object" ); + } else { + m_current_run_id = pEvent->runNumber(); + m_current_lbk_id = pEvent->lumiBlock(); + m_current_evt_id = pEvent->eventNumber(); + m_current_bcg_id = pEvent->bcid(); + char buff[512]; + snprintf(buff,512, + "REGTEST: Run number = %11u, luminosity block = %11u, event number = %11u, bunch crossing = %11u", + m_current_run_id, m_current_lbk_id, m_current_evt_id, m_current_bcg_id); + ATH_MSG_DEBUG( buff ); + } + } + ATH_MSG_DEBUG( "Transient object follows " ); + ATH_MSG_DEBUG( "REGTEST: (EF) Lvl1Id = " << config()->getLvl1Id() ); + ATH_MSG_DEBUG( *m_met_help ); // transient object + } + + // monitored values (in GeV or rad) + m_phi = atan2f(ETy, ETx); + m_mex_lin = ETx * 1e-3; + m_mey_lin = ETy * 1e-3; + m_mez_lin = m_met->ez() * 1e-3; + m_met_lin = MET * 1e-3; + m_me_lin = sqrt(m_mex_lin*m_mex_lin+m_mey_lin*m_mey_lin+m_mez_lin*m_mez_lin); + m_set_lin = SET * 1e-3; // NB: might be negative + m_se_lin = m_met->sumE() * 1e-3; // NB: might be negative + + float epsilon = 1e-6; // 1 keV + if (m_set_lin > epsilon) m_xs = m_met_lin / sqrt(m_set_lin); + + // never compare a float with zero: + epsilon = 1e-6; // 1 keV + if (m_me_lin>epsilon) m_me_log = log10(fabsf(m_me_lin)); // underflow otherwise + + epsilon=1.189; // GeV (see TrigEFMissingETMonitoring.py) + if (fabsf(m_mex_lin)>epsilon) + m_mex_log = copysign(log10f(fabsf(m_mex_lin)), m_mex_lin); else - m_comp_ex_log[i] = 0; - if (fabsf(ey)>epsilon) - m_comp_ey_log[i] = copysign(log10f(fabsf(ey)), ey); + m_mex_log = 0; + if (fabsf(m_mey_lin)>epsilon) + m_mey_log = copysign(log10f(fabsf(m_mey_lin)), m_mey_lin); else - m_comp_ey_log[i] = 0; - if (fabsf(ez)>epsilon) - m_comp_ez_log[i] = copysign(log10f(fabsf(ez)), ez); + m_mey_log = 0; + if (fabsf(m_mez_lin)>epsilon) + m_mez_log = copysign(log10f(fabsf(m_mez_lin)), m_mez_lin); else - m_comp_ez_log[i] = 0; - m_comp_et_lin[i] = et; - if (et>1e-6) // i.e. et > 0 - m_comp_et_log[i] = log10f(et); + m_mez_log = 0; + if (fabsf(m_set_lin)>epsilon) + m_set_log = copysign(log10f(fabsf(m_set_lin)), m_set_lin); else - m_comp_et_log[i] = -9e9; // underflow - m_comp_sum_et_lin[i] = sumEt; - if (fabsf(sumEt)>epsilon) - m_comp_sum_et_log[i] = copysign(log10f(fabsf(sumEt)), sumEt); + m_set_log = 0; + if (fabsf(m_se_lin)>epsilon) + m_se_log = copysign(log10f(fabsf(m_se_lin)), m_se_lin); else - m_comp_sum_et_log[i] = 0; - if (fabsf(sumE)>epsilon) - m_comp_sum_e_log[i] = copysign(log10f(fabsf(sumE)), sumE); + m_se_log = 0; + if (fabsf(m_met_lin)>epsilon) // positive definite + m_met_log = log10f(fabsf(m_met_lin)); else - m_comp_sum_e_log[i] = 0; - } + m_met_log = -9e9; // underflow + + // monitoring: status flag + for (int i=0; i<32; ++i) { + unsigned mask = (1<<i); + if (m_met->flag() & mask) + m_status_flag[i] = 1; + else + m_status_flag[i] = 0; + } - return HLT::OK; + for (unsigned char i=0; i<m_met_help->GetElements(); ++i) { + TrigEFMissingEtComponent* metComp=m_met_help->GetComponent(i); + float ex = metComp->m_ex * 1e-3; // GeV + float ey = metComp->m_ey * 1e-3; // GeV + float ez = metComp->m_ez * 1e-3; // GeV + float et = sqrt(ex*ex+ey*ey); + float sumEt = metComp->m_sumEt * 1e-3; // GeV + float sumE = metComp->m_sumE * 1e-3; // GeV + + if (fabsf(ex)>epsilon) + m_comp_ex_log[i] = copysign(log10f(fabsf(ex)), ex); + else + m_comp_ex_log[i] = 0; + if (fabsf(ey)>epsilon) + m_comp_ey_log[i] = copysign(log10f(fabsf(ey)), ey); + else + m_comp_ey_log[i] = 0; + if (fabsf(ez)>epsilon) + m_comp_ez_log[i] = copysign(log10f(fabsf(ez)), ez); + else + m_comp_ez_log[i] = 0; + m_comp_et_lin[i] = et; + if (et>1e-6) // i.e. et > 0 + m_comp_et_log[i] = log10f(et); + else + m_comp_et_log[i] = -9e9; // underflow + m_comp_sum_et_lin[i] = sumEt; + if (fabsf(sumEt)>epsilon) + m_comp_sum_et_log[i] = copysign(log10f(fabsf(sumEt)), sumEt); + else + m_comp_sum_et_log[i] = 0; + if (fabsf(sumE)>epsilon) + m_comp_sum_e_log[i] = copysign(log10f(fabsf(sumE)), sumE); + else + m_comp_sum_e_log[i] = 0; + } + + return HLT::OK; } ////////////////////////////////////////////////////////// HLT::ErrorCode EFMissingET::makeOutputTE(std::vector<std::vector<HLT::TriggerElement*> >& tes_in, - unsigned int type_out) { + unsigned int type_out) +{ - // Only count MET as an input TE (for seeding relation of navigation structure) - HLT::TEVec allTEs; - if ( (tes_in.size()>0) && (tes_in[0].size()>0) ) allTEs.push_back( tes_in[0][0] ); + // Only count MET as an input TE (for seeding relation of navigation structure) + HLT::TEVec allTEs; + if ( (tes_in.size()>0) && (tes_in[0].size()>0) ) allTEs.push_back( tes_in[0][0] ); - // create output TE: - // Create an output TE seeded by the inputs - HLT::TriggerElement* outputTE = config()->getNavigation()->addNode(allTEs, type_out); - HLT::ErrorCode status = attachFeature(outputTE, m_met, m_metOutputKey); + // create output TE: + // Create an output TE seeded by the inputs + HLT::TriggerElement* outputTE = config()->getNavigation()->addNode(allTEs, type_out); + HLT::ErrorCode status = attachFeature(outputTE, m_met, m_metOutputKey); - if (status != HLT::OK){ - ATH_MSG_ERROR( "Write into outputTE failed" ); - return status; - } + if (status != HLT::OK) { + ATH_MSG_ERROR( "Write into outputTE failed" ); + return status; + } - /* + /* - // Create a new RoiDescriptor with updated eta and phi. - // Note that the steering will propagate l1Id and roiId automatically - // so no need to set them. - TrigRoiDescriptor* newRoiDescriptor=new TrigRoiDescriptor(m_roiDescriptor->l1Id(), - m_roiDescriptor->roiId(), - m_roiDescriptor->eta0(), - m_roiDescriptor->phi0()); + // Create a new RoiDescriptor with updated eta and phi. + // Note that the steering will propagate l1Id and roiId automatically + // so no need to set them. + TrigRoiDescriptor* newRoiDescriptor=new TrigRoiDescriptor(m_roiDescriptor->l1Id(), + m_roiDescriptor->roiId(), + m_roiDescriptor->eta0(), + m_roiDescriptor->phi0()); - if(msgLvl() <= MSG::DEBUG) { - msg() << MSG::DEBUG << "Recorded an RoiDescriptor " << - " phi " << newRoiDescriptor->phi0() << - " eta " << newRoiDescriptor->eta0() << endmsg; - } + if(msgLvl() <= MSG::DEBUG) { + msg() << MSG::DEBUG << "Recorded an RoiDescriptor " << + " phi " << newRoiDescriptor->phi0() << + " eta " << newRoiDescriptor->eta0() << endmsg; + } - status = attachFeature(outputTE, newRoiDescriptor,"TrigEFMissingET"); + status = attachFeature(outputTE, newRoiDescriptor,"TrigEFMissingET"); -*/ + */ - // Some debug output: - ATH_MSG_DEBUG( "We assume success, set TE with label active to signal positive result." ); + // Some debug output: + ATH_MSG_DEBUG( "We assume success, set TE with label active to signal positive result." ); - // CACHING - // if we got here, everything was okay. so, we cache the feature for further execution of this instance in e.g. other MET Sequences: - m_useCachedResult = true; - m_cachedTE = outputTE; + // CACHING + // if we got here, everything was okay. so, we cache the feature for further execution of this instance in e.g. other MET Sequences: + m_useCachedResult = true; + m_cachedTE = outputTE; - return HLT::OK; + return HLT::OK; } diff --git a/Trigger/TrigAlgorithms/TrigEFMissingET/src/EFMissingETBaseTool.cxx b/Trigger/TrigAlgorithms/TrigEFMissingET/src/EFMissingETBaseTool.cxx index 708c9784983874dd14334c7a596c2d6cf090cc94..5a8c41954f229849353dbc9df26d9c48452c2fb4 100644 --- a/Trigger/TrigAlgorithms/TrigEFMissingET/src/EFMissingETBaseTool.cxx +++ b/Trigger/TrigAlgorithms/TrigEFMissingET/src/EFMissingETBaseTool.cxx @@ -116,7 +116,8 @@ StatusCode EFMissingETBaseTool::execute(xAOD::TrigMissingET * /* met */ , TrigEFMissingEtHelper * /* metHelper */ , const xAOD::CaloClusterContainer * /* caloCluster */ , const xAOD::JetContainer * /* jets */, const xAOD::TrackParticleContainer * /*trackContainer*/, - const xAOD::VertexContainer * /*vertexContainer*/ ) + const xAOD::VertexContainer * /*vertexContainer*/, + const xAOD::MuonContainer * /*muonContainer*/ ) { return StatusCode::SUCCESS; } diff --git a/Trigger/TrigAlgorithms/TrigEFMissingET/src/EFMissingETFlags.cxx b/Trigger/TrigAlgorithms/TrigEFMissingET/src/EFMissingETFlags.cxx index ba5cc7e773e3ac92ef822e352970d98282c94d29..4f6693baaff6d5d508a6254d24c3afc695754201 100644 --- a/Trigger/TrigAlgorithms/TrigEFMissingET/src/EFMissingETFlags.cxx +++ b/Trigger/TrigAlgorithms/TrigEFMissingET/src/EFMissingETFlags.cxx @@ -203,7 +203,8 @@ StatusCode EFMissingETFlags::execute(xAOD::TrigMissingET *met , TrigEFMissingEtHelper *metHelper , const xAOD::CaloClusterContainer * /* caloCluster */ , const xAOD::JetContainer * /* jets */, const xAOD::TrackParticleContainer * /*trackContainer*/, - const xAOD::VertexContainer * /*vertexContainer*/ ) + const xAOD::VertexContainer * /*vertexContainer*/, + const xAOD::MuonContainer * /*muonContainer*/ ) { ATH_MSG_DEBUG( "EFMissingETFlags::execute() called" ); diff --git a/Trigger/TrigAlgorithms/TrigEFMissingET/src/EFMissingETFromCells.cxx b/Trigger/TrigAlgorithms/TrigEFMissingET/src/EFMissingETFromCells.cxx index 1ebb7398bc68607aa6398f9abd4ea171fdb72041..ba05fc9ddca236fc5c130baa97ca70fc72345765 100644 --- a/Trigger/TrigAlgorithms/TrigEFMissingET/src/EFMissingETFromCells.cxx +++ b/Trigger/TrigAlgorithms/TrigEFMissingET/src/EFMissingETFromCells.cxx @@ -136,7 +136,8 @@ StatusCode EFMissingETFromCells::execute(xAOD::TrigMissingET * /* met */ , TrigEFMissingEtHelper *metHelper , const xAOD::CaloClusterContainer * /* caloCluster */ , const xAOD::JetContainer * /* jets */, const xAOD::TrackParticleContainer * /*trackContainer*/, - const xAOD::VertexContainer * /*vertexContainer*/ ) + const xAOD::VertexContainer * /*vertexContainer*/, + const xAOD::MuonContainer * /*muonContainer*/ ) { ATH_MSG_DEBUG( "this is EFMissingETFromCells::execute()" ); diff --git a/Trigger/TrigAlgorithms/TrigEFMissingET/src/EFMissingETFromClusters.cxx b/Trigger/TrigAlgorithms/TrigEFMissingET/src/EFMissingETFromClusters.cxx index 56e8bf72637095f590a5379d14a24082100f9ba4..bc1862584e6075aac1a541fad5cbaaf98cc7e8b6 100644 --- a/Trigger/TrigAlgorithms/TrigEFMissingET/src/EFMissingETFromClusters.cxx +++ b/Trigger/TrigAlgorithms/TrigEFMissingET/src/EFMissingETFromClusters.cxx @@ -89,7 +89,8 @@ StatusCode EFMissingETFromClusters::execute(xAOD::TrigMissingET * /* met */ , TrigEFMissingEtHelper *metHelper , const xAOD::CaloClusterContainer *caloCluster, const xAOD::JetContainer * /* jets */, const xAOD::TrackParticleContainer * /*trackContainer*/, - const xAOD::VertexContainer * /*vertexContainer*/ ) + const xAOD::VertexContainer * /*vertexContainer*/, + const xAOD::MuonContainer * /*muonContainer*/ ) { ATH_MSG_DEBUG( "called EFMissingETFromClusters::execute()" ); diff --git a/Trigger/TrigAlgorithms/TrigEFMissingET/src/EFMissingETFromClustersPS.cxx b/Trigger/TrigAlgorithms/TrigEFMissingET/src/EFMissingETFromClustersPS.cxx index 2f7a5a24cd1484b73d9b2e00c8daa717603fba4a..61b12365dd004c847e0235f00c9a38bc5a438851 100644 --- a/Trigger/TrigAlgorithms/TrigEFMissingET/src/EFMissingETFromClustersPS.cxx +++ b/Trigger/TrigAlgorithms/TrigEFMissingET/src/EFMissingETFromClustersPS.cxx @@ -100,7 +100,8 @@ StatusCode EFMissingETFromClustersPS::execute(xAOD::TrigMissingET * /* met */ , TrigEFMissingEtHelper *metHelper , const xAOD::CaloClusterContainer *caloCluster, const xAOD::JetContainer * /* jets */, const xAOD::TrackParticleContainer * /*trackContainer*/, - const xAOD::VertexContainer * /*vertexContainer*/ ) + const xAOD::VertexContainer * /*vertexContainer*/, + const xAOD::MuonContainer * /*muonContainer*/ ) { ATH_MSG_DEBUG( "called EFMissingETFromClustersPS::execute()" ); diff --git a/Trigger/TrigAlgorithms/TrigEFMissingET/src/EFMissingETFromClustersPUC.cxx b/Trigger/TrigAlgorithms/TrigEFMissingET/src/EFMissingETFromClustersPUC.cxx index c9f24bcff551ec92ec316261f1d2e7abcd1e05e2..abb3957bb4af5f1d62c5ed193291435518314827 100644 --- a/Trigger/TrigAlgorithms/TrigEFMissingET/src/EFMissingETFromClustersPUC.cxx +++ b/Trigger/TrigAlgorithms/TrigEFMissingET/src/EFMissingETFromClustersPUC.cxx @@ -44,6 +44,10 @@ EFMissingETFromClustersPUC::EFMissingETFromClustersPUC(const std::string& type, declareProperty("nSigma", m_nsigma = 5.0 ,"tower ET significance"); declareProperty("varRhoScale", m_varrhoscale = 1.0 ,"adjustment factor for weighting rho errors in fit"); declareProperty("trimFactor", m_trimfactor = 0.90 ,"Fraction of towers used in calculating trimmed mean"); + + declareProperty("doLArH11off", m_doLArH11off = false, "LAr H11 crate is off" ); + declareProperty("doLArH12off", m_doLArH12off = false, "LAr H12 crate is off" ); + declareProperty("Jetptcut", m_Jetptcut = 999., "remove event when Jet pt > m_Jetptcut in the region of LAr H11 or/both H12"); // declare configurables @@ -105,8 +109,9 @@ StatusCode EFMissingETFromClustersPUC::finalize() StatusCode EFMissingETFromClustersPUC::execute(xAOD::TrigMissingET * /* met */ , TrigEFMissingEtHelper *metHelper , - const xAOD::CaloClusterContainer *caloCluster, const xAOD::JetContainer * /* jets */, - const xAOD::TrackParticleContainer * /*trackContainer*/, const xAOD::VertexContainer * /*vertexContainer*/ ) + const xAOD::CaloClusterContainer *caloCluster, const xAOD::JetContainer * jets, + const xAOD::TrackParticleContainer * /*trackContainer*/, const xAOD::VertexContainer * /*vertexContainer*/, + const xAOD::MuonContainer * /*muonContainer*/ ) { ATH_MSG_DEBUG( "called EFMissingETFromClustersPUC::execute()" ); @@ -114,6 +119,20 @@ StatusCode EFMissingETFromClustersPUC::execute(xAOD::TrigMissingET * /* met */ , if(m_timersvc) m_glob_timer->start(); // total time + + + std::vector<const xAOD::Jet*> JetsVec(jets->begin(), jets->end()); + ATH_MSG_DEBUG( "num of jets: " << JetsVec.size() ); + + bool foundJetVeto(false); + if(m_Jetptcut>0){ + for (const xAOD::Jet* jet : JetsVec) { + if(m_doLArH11off && jet->eta()>-1.5 && jet->eta()<0 && jet->phi() > -2.0 && jet->phi() < -1.5 && jet->pt() > m_Jetptcut*1000. ) foundJetVeto = true; + if(m_doLArH12off && jet->eta()>-1.5 && jet->eta()<0 && jet->phi() > -2.5 && jet->phi() < -2.0 && jet->pt() > m_Jetptcut*1000. ) foundJetVeto = true; + } + } + + /// fetching the topo. cluster component TrigEFMissingEtComponent* metComp = nullptr; metComp = metHelper->GetComponent(metHelper->GetElements() - m_methelperposition); // fetch Cluster component @@ -221,6 +240,8 @@ StatusCode EFMissingETFromClustersPUC::execute(xAOD::TrigMissingET * /* met */ , VarEtTower += term; } VarEtTower *= 1.0/m_ntowers; + // Set a minimum value to avoid FPEs + if (VarEtTower < 1.0e6) VarEtTower = 1.0e6; ptmin_final = EtTowerTrimMean + m_nsigma*sqrt(VarEtTower); // find binning that gives largest sumEt from bins above threshold @@ -261,7 +282,7 @@ StatusCode EFMissingETFromClustersPUC::execute(xAOD::TrigMissingET * /* met */ , } int nummasks = ExInMask.size(); - if(nummasks > 0) { + if(nummasks > 0 && !foundJetVeto) { // Form sumEtobs and covEtobs from all towers double sumEtobs = 0, varsumEtobs = 0; TMatrixD Etobs(2,1), covEtobs(2,2); @@ -386,12 +407,14 @@ StatusCode EFMissingETFromClustersPUC::execute(xAOD::TrigMissingET * /* met */ , // -------------------------------------------------------------------------------------- + // move from "processing" to "processed" state metComp->m_status ^= m_maskProcessing; // switch off bit metComp->m_status |= m_maskProcessed; // switch on bit } // end container loop. + if(m_timersvc) m_glob_timer->stop(); // total time diff --git a/Trigger/TrigAlgorithms/TrigEFMissingET/src/EFMissingETFromClustersTracksPUC.cxx b/Trigger/TrigAlgorithms/TrigEFMissingET/src/EFMissingETFromClustersTracksPUC.cxx new file mode 100644 index 0000000000000000000000000000000000000000..8503a1cfb7d0593f314c8cafbbeb7478f43dfd80 --- /dev/null +++ b/Trigger/TrigAlgorithms/TrigEFMissingET/src/EFMissingETFromClustersTracksPUC.cxx @@ -0,0 +1,425 @@ +/* + Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +*/ + +/******************************************************************** + +NAME: EFMissingETFromClustersTracksPUC.cxx +PACKAGE: Trigger/TrigAlgorithms/TrigEFMissingET + +AUTHORS: Rui Zou, Ben Carlson, Jonathan Burr +CREATED: Feb 01, 2018 + +PURPOSE: Pile-up fit + tracks + +********************************************************************/ + +#include "TrigEFMissingET/EFMissingETFromClustersTracksPUC.h" +#include "TrigTimeAlgs/TrigTimerSvc.h" + +#include <TMatrixD.h> +#include <string> + +using namespace std; +namespace { + // Helper class + struct Tower{ + xAOD::CaloCluster::State m_clusterstate; + float sumEt{0.}; + float px{0.}; + float py{0.}; + float pt() { return sqrt(px*px+py*py); } + float cosPhi() { return pt() > 0 ? px/pt() : 1.; } + float sinPhi() { return pt() > 0 ? py/pt() : 0.; } + Tower& operator=(bool m_saveuncalibrated) { + if(m_saveuncalibrated) m_clusterstate = xAOD::CaloCluster::UNCALIBRATED; + else m_clusterstate = xAOD::CaloCluster::CALIBRATED; + return *this; + } + Tower& operator+=(const xAOD::CaloCluster& clus) { + float sinPhi; + float cosPhi; + sincosf(clus.phi(m_clusterstate), &sinPhi, &cosPhi); + float Et = clus.pt(m_clusterstate); + sumEt += Et; + px += Et * cosPhi; + py += Et * sinPhi; + return *this; + } + }; +} + + +EFMissingETFromClustersTracksPUC::EFMissingETFromClustersTracksPUC(const std::string& type, + const std::string& name, + const IInterface* parent) : + EFMissingETBaseTool(type, name, parent), + m_trackselTool("InDet::InDetTrackSelectionTool/TrackSelectionTool", this ) +{ + // declare the algorithm configurables here + // declareProperty("PropertyName", m_property=default_value, "Property Description"); + // (*Do* add a property description...) + declareProperty("SaveUncalibrated", m_saveuncalibrated = false ,"save uncalibrated topo. clusters"); + declareProperty("TargetTowerWidth", m_targetTowerWidth = 0.7, "The target width of the towers"); + declareProperty("MaxEta", m_maxEta = 5., "The maximum eta"); + declareProperty("ForwardpTCut", m_forward_ptcut = 50.0e3 ,"pT Cut for forward jets"); + declareProperty("TrackpTCut", m_track_ptcut = 0.0 ,"pT Cut for online tracks"); + declareProperty("dRCut", m_dRCut = 0.4, "dR Cut for track - jet association"); + declareProperty("MinJetPtJvt", m_minJetPtJvt = 20.e3, "The minimum pT (in MeV) for jets to consider for JVT"); + declareProperty("MaxJetPtJvt", m_maxJetPtJvt = 60.e3, "The maximum pT (in MeV) for jets to consider for JVT (above this jets automatically pass"); + declareProperty("JetRpTCut", m_jetRpTCut = 0.1, "The JVT RpT cut to apply to jets");//0.1, "The JVT RpT cut to apply to jets"); + declareProperty("CaloResSqrtTerm", m_caloResSqrtTerm = 15.81, "The coefficient of the sqrt term in the calorimeter resolution (in MeV)"); + declareProperty("CaloResFloor", m_caloResFloor = 50, "Floor for calorimeter resolution (in MeV)"); + declareProperty("ConstraintWeight", m_constraintWeight = 1., "The relative weighting applied to the constraints"); + + // declare configurables + + m_fextype = FexType::TOPO; + m_methelperposition = 3; + + // Determine number of phi & eta bins, and number of towers + m_nPhiBins = TMath::TwoPi() / m_targetTowerWidth; + m_nEtaBins = 2 * m_maxEta / m_targetTowerWidth; + m_nTowers = m_nPhiBins * m_nEtaBins; + + m_towerEtaWidth = 2 * m_maxEta / m_nEtaBins; + m_towerPhiWidth = TMath::TwoPi() / m_nPhiBins; + + m_clusterstate = xAOD::CaloCluster::UNCALIBRATED; +} + + +EFMissingETFromClustersTracksPUC::~EFMissingETFromClustersTracksPUC() +{ +} + + +StatusCode EFMissingETFromClustersTracksPUC::initialize() +{ + ATH_MSG_DEBUG( "called EFMissingETFromClustersTracksPUC::initialize()" ); + + // Standard initialize step + + // Set up the timer service. + if( service( "TrigTimerSvc", m_timersvc).isFailure() ) + ATH_MSG_WARNING( name() << ": Unable to locate TrigTimer Service" ); + + if (m_timersvc) { + // global time + std::string basename=name()+".TotalTime"; + m_glob_timer = m_timersvc->addItem(basename); + } // if timing service + + if(m_saveuncalibrated) m_clusterstate = xAOD::CaloCluster::UNCALIBRATED; + else m_clusterstate = xAOD::CaloCluster::CALIBRATED; + + return StatusCode::SUCCESS; +} + + +StatusCode EFMissingETFromClustersTracksPUC::execute() +{ + return StatusCode::SUCCESS; +} + +StatusCode EFMissingETFromClustersTracksPUC::finalize() +{ + ATH_MSG_DEBUG( "called EFMissingETFromClustersTracksPUC::finalize()" ); + + return StatusCode::SUCCESS; + +} + +StatusCode EFMissingETFromClustersTracksPUC::execute(xAOD::TrigMissingET * /* met */ , + TrigEFMissingEtHelper *metHelper , + const xAOD::CaloClusterContainer *caloCluster, const xAOD::JetContainer * jetContainer, + const xAOD::TrackParticleContainer * trackContainer, const xAOD::VertexContainer * vertexContainer, + const xAOD::MuonContainer * /*muonContainer*/ ) +{ + // The function signature has to be compatible with all of the algorithms used in the package + // This is unfortunate and liable to change in the future (certainly for athenaMT) but until then just be aware that that's how it goes + // The main algorithm works out what types the various trigger elements are that have been given to it and then passes them onto these functions + + ATH_MSG_DEBUG( "called EFMissingETFromClustersTracksPUC::execute()" ); + + if(m_timersvc)m_glob_timer->start(); // total time + + // The met Helper is used to create the various components of the output trigger MET + // Again, this is an old design and could be updated but probably won't be until athenaMT + // You need to write the met into a position in the helper (and a later tool then compiles this into a met value) + /// fetching the topo. cluster component + TrigEFMissingEtComponent* metComp = nullptr; + metComp = metHelper->GetComponent(metHelper->GetElements() - m_methelperposition); // fetch Cluster component + if (metComp==0) { + ATH_MSG_ERROR( "cannot fetch Topo. cluster component!" ); + return StatusCode::FAILURE; + } + if(string(metComp->m_name).substr(0,2)!="TC"){ + ATH_MSG_ERROR( "fetched " << metComp->m_name << " instead of the Clusters component!" ); + return StatusCode::FAILURE; + } + + ATH_MSG_DEBUG( "fetched metHelper component \"" << metComp->m_name << "\"" ); + + if ( (metComp->m_status & m_maskProcessed)==0 ){ // not yet processed + metComp->Reset(); // reset component... + } + else { // skip if processed + if(m_timersvc) m_glob_timer->stop(); // total time + return StatusCode::SUCCESS; + } + + // The mask statuses are involved in making sure that you don't try and run the same calculation multiple times + // To be honest I *thought* this was handled by the steering so it probably is something we should check... + // set status to Processing + metComp->m_status |= m_maskProcessing; + + std::vector<const xAOD::Jet*> JetsVec(jetContainer->begin(), jetContainer->end()); + ATH_MSG_DEBUG( "num of jets: " << JetsVec.size() ); + + std::vector<const xAOD::TrackParticle*> TracksVec(trackContainer->begin(), trackContainer->end()); + ATH_MSG_DEBUG( "num of tracks: " << TracksVec.size() ); + + std::vector<const xAOD::Vertex*> VertexVec(vertexContainer->begin(), vertexContainer->end()); + ATH_MSG_DEBUG( "num of vertices: " << VertexVec.size() ); + + std::vector<const xAOD::CaloCluster*> clusters(caloCluster->begin(), caloCluster->end()); + + std::vector<const xAOD::Jet*> hardScatterJets(0); + std::vector<const xAOD::Jet*> pileupJets(0); + + const xAOD::Vertex* primaryVertex = nullptr; + for (const xAOD::Vertex* vertex : VertexVec) { + + ATH_MSG_DEBUG( "\tx: " << vertex->x() << "\ty: " << vertex->y() << "\tz: " << vertex->z() + << "\tntracks: " << vertex->nTrackParticles() + << "\ttype: " << vertex->vertexType() + << "\txAOD::VxType::PriVtx: " << xAOD::VxType::PriVtx ); + + // ntracks is not working now in rel21 + // if ( vertex->nTrackParticles() < 2 ) continue; + if ( vertex->vertexType() == xAOD::VxType::PriVtx ) { + primaryVertex = vertex; + break; + } + } + + std::vector<double> ptsum_pvsVec(JetsVec.size(), 0.0); + for (const xAOD::TrackParticle* itrk : TracksVec) { + bool accept = (itrk->pt()> m_track_ptcut && m_trackselTool->accept(*itrk, primaryVertex)); + if (!accept) continue; + int whichjet = 0; + double minkT = -1; + for (uint i=0; i < JetsVec.size(); i++) { + const xAOD::Jet* jet = JetsVec.at(i); + if (primaryVertex) { + if (fabs(jet->eta() ) < 2.4) { + double dphi = fabs(jet->phi()-itrk->phi()); + if (dphi > M_PI) dphi = 2*M_PI - dphi; + double dR = sqrt((jet->rapidity()-itrk->rapidity())*(jet->rapidity()-itrk->rapidity()) + dphi * dphi); + if (dR > m_dRCut) continue; + double kT = dR/jet->pt(); + if (kT < minkT || minkT < 0) { + minkT = kT; + whichjet = i; + } + } + } + if (minkT >= 0) ptsum_pvsVec.at(whichjet) += itrk->pt(); + + } + } + + for (uint i=0; i < JetsVec.size(); i++) { + const xAOD::Jet* jet = JetsVec.at(i); + if (primaryVertex) { + if (fabs(jet->eta() ) < 2.4) { + double RpT = ptsum_pvsVec.at(i)/jet->pt(); + if (jet->pt() > m_minJetPtJvt && (RpT > m_jetRpTCut || jet->pt() > m_maxJetPtJvt)){ + hardScatterJets.push_back(jet); + } else { + pileupJets.push_back(jet); + } + } else if (jet->pt() >= m_forward_ptcut) { + hardScatterJets.push_back(jet); + } else { + pileupJets.push_back(jet); + } + } else { + pileupJets.push_back(jet); + } + } + + if (hardScatterJets.size() == 0) return StatusCode::SUCCESS; + + std::vector<const xAOD::CaloCluster*> pileupClusters(0); + std::vector<const xAOD::CaloCluster*> hardScatterClusters(0); + std::set<unsigned int> hardScatterIndices; // The indices of clusters associated with pileup jets + + // Assume all of our jets have the same radius - the rest of the algorithm basically + // relies on this anyway. + float jetRadiusParameter = hardScatterJets.front()->getSizeParameter(); + + for (const xAOD::Jet* ijet : hardScatterJets) + for (const auto& link : ijet->constituentLinks() ) + hardScatterIndices.insert(link.index() ); + for (unsigned int ii = 0; ii < clusters.size(); ++ii) { + if (fabs(clusters.at(ii)->eta(m_clusterstate) ) > m_maxEta) + continue; + if (hardScatterIndices.count(ii) ){ + hardScatterClusters.push_back(clusters.at(ii) ); + } else { + pileupClusters.push_back(clusters.at(ii) ); + } + } + + // Calculate covariance of pileup deposits, collect into towers and calculate pileup 2-vector + float sigma_xx = 0.; + float sigma_yy = 0.; + float sigma_xy = 0.; + std::vector<Tower> pileupTowers(m_nTowers); + TVector2 ptPileup; + for (const xAOD::CaloCluster* iclus : pileupClusters) { + float sigma2 = m_caloResFloor*m_caloResFloor + m_caloResSqrtTerm*m_caloResSqrtTerm*iclus->pt(m_clusterstate); + float sinPhi; + float cosPhi; + sincosf(iclus->phi(m_clusterstate), &sinPhi, &cosPhi); + sigma_xx += sigma2 * cosPhi*cosPhi; + sigma_yy += sigma2 * sinPhi*sinPhi; + sigma_xy += sigma2 * cosPhi*sinPhi; + unsigned int etaBin = (iclus->eta(m_clusterstate) + m_maxEta)/(2*m_maxEta) * m_nEtaBins; + unsigned int phiBin = fmod(iclus->phi(m_clusterstate)/TMath::TwoPi() + 1, 1) * m_nPhiBins; + pileupTowers.at(etaBin*m_nPhiBins + phiBin) = m_clusterstate; + pileupTowers.at(etaBin*m_nPhiBins + phiBin) += *iclus; + ptPileup += TVector2(cosPhi, sinPhi) * iclus->pt(m_clusterstate); + } + float sigma_det = sigma_yy*sigma_xx - sigma_xy*sigma_xy; + double cosPhiPileup = ptPileup.Px()/ptPileup.Mod(); + double sinPhiPileup = ptPileup.Py()/ptPileup.Mod(); + + float sumEtPileup = 0.; + float sumEt2Pileup = 0.; + unsigned int nNonOverlappingPileupTowers = 0; + // Now calculate the variance of the towers that don't overlap with jets + for (unsigned int ii = 0; ii < pileupTowers.size(); ++ii) { + Tower& tower = pileupTowers.at(ii); + // Calculate the (eta, phi) centre of the tower from its index + unsigned int phiBin = ii % m_nPhiBins; + float phi = (phiBin + 0.5) * m_towerPhiWidth; + unsigned int etaBin = ii/m_nPhiBins; + float eta = -m_maxEta + (etaBin + 0.5) * m_towerEtaWidth; + bool overlaps = false; + for (const xAOD::Jet* ijet : hardScatterJets) { + // Taking absolutes exploits the symmetry of the overlap problem + // We consider the case of overlapping with the right side, the top or the top right corner + float dPhi = fabs(phi - ijet->phi() ); + float dEta = fabs(eta - ijet->eta() ); + if ( (dPhi < m_towerPhiWidth/2. && dEta < (jetRadiusParameter + m_towerEtaWidth/2.) ) + || (dEta < m_towerEtaWidth/2. && dPhi < (jetRadiusParameter + m_towerPhiWidth/2.) ) + || (dEta - m_towerEtaWidth/2.)*(dEta - m_towerEtaWidth/2.) + (dPhi-m_towerPhiWidth/2.)*(dPhi-m_towerPhiWidth/2.) < jetRadiusParameter*jetRadiusParameter) { + overlaps = true; + break; + } + } + // Remove overlapping towers from the variance calculation + if (overlaps) + continue; + sumEtPileup += tower.sumEt; + sumEt2Pileup += tower.sumEt*tower.sumEt; + ++nNonOverlappingPileupTowers; + } + float avgPileupEt = sumEtPileup/nNonOverlappingPileupTowers; + float varPileupEt = sumEt2Pileup/nNonOverlappingPileupTowers - avgPileupEt*avgPileupEt; + + // Construct matrix to calculate corrections + TMatrixD Xij(hardScatterJets.size(), hardScatterJets.size() ); + TMatrixD Cj(hardScatterJets.size(), 1); + for (unsigned int ii = 0; ii < hardScatterJets.size(); ++ii) { + float sinPhi1; + float cosPhi1; + sincosf(hardScatterJets.at(ii)->phi(), &sinPhi1, &cosPhi1); + Cj[ii][0] = -m_constraintWeight * ptPileup.Mod() / sigma_det * ( + sigma_yy * cosPhi1 * cosPhiPileup + + sigma_xx * sinPhi1 * sinPhiPileup + - sigma_xy * (sinPhi1 * cosPhiPileup + cosPhi1 * sinPhiPileup) ) + + avgPileupEt / varPileupEt; + for (unsigned int jj = ii; jj < hardScatterJets.size(); ++jj) { + float sinPhi2; + float cosPhi2; + sincosf(hardScatterJets.at(jj)->phi(), &sinPhi2, &cosPhi2); + Xij[ii][jj] = m_constraintWeight / sigma_det * ( + sigma_yy * cosPhi1 * cosPhi2 + + sigma_xx * sinPhi1 * sinPhi2 + - sigma_xy * (cosPhi1 * sinPhi2 + sinPhi1 * cosPhi2) ); + if (ii == jj) + // Scale the variance of the jet by the ratio of its area to the tower area + Xij[ii][jj] += m_towerPhiWidth*m_towerEtaWidth / (varPileupEt * hardScatterJets.at(ii)->getAttribute<float>(xAOD::JetAttribute::AttributeID::ActiveArea) ); + else + Xij[jj][ii] = Xij[ii][jj]; + } + } + Xij.Invert(); + TMatrixD corrections(Xij * Cj); + + float ex = 0; + float ey = 0; + float ez = 0; + float sumEt = 0; + float sumE = 0; + for (const xAOD::CaloCluster* iclus : hardScatterClusters) { + float pt = iclus->pt(m_clusterstate); + float sinPhi; + float cosPhi; + float eta = iclus->eta(m_clusterstate); + sincosf(iclus->phi(m_clusterstate), &sinPhi, &cosPhi); + ex -= pt * cosPhi; + ey -= pt * sinPhi; + ez += pt * sinhf(eta); + sumEt += pt; + sumE += iclus->p4(m_clusterstate).E(); + } + // Apply corrections + for (unsigned int ii = 0; ii < hardScatterJets.size(); ++ii) { + float sinPhi; + float cosPhi; + sincosf(hardScatterJets.at(ii)->phi(), &sinPhi, &cosPhi); + ex += corrections[ii][0] * cosPhi; + ey += corrections[ii][0] * sinPhi; + sumEt -= corrections[ii][0]; + } + + // At the end make sure that you stored your calculated met values in the component + metComp->m_ex = ex; + metComp->m_ey = ey; + metComp->m_ez = ez; + metComp->m_sumEt = sumEt; + metComp->m_sumE = sumE; + metComp->m_usedChannels += 1; + + // You *can* store bits in other components (either spreading the met over several components or recording extra information that might be useful) + // However you need to be very sure that the helper is adding up the right bits + /**************************************************************************************** + metComp = metHelper->GetComponent(metHelper->GetElements() - m_methelperposition + 1 ); // fetch first auxiliary component to store uncorrected MET + + metComp->m_ex = -MExEta; + metComp->m_ey = -MEyEta; + metComp->m_ez = -MEzEta; + metComp->m_sumEt = sumEtEta; + metComp->m_sumE = sumEEta; + metComp->m_usedChannels += 1; + *****************************************************************************************/ + //} + + // -------------------------------------------------------------------------------------- + + // move from "processing" to "processed" state + metComp->m_status ^= m_maskProcessing; // switch off bit + metComp->m_status |= m_maskProcessed; // switch on bit + + // end container loop. + + if(m_timersvc) m_glob_timer->stop(); // total time + + return StatusCode::SUCCESS; + +} diff --git a/Trigger/TrigAlgorithms/TrigEFMissingET/src/EFMissingETFromFEBHeader.cxx b/Trigger/TrigAlgorithms/TrigEFMissingET/src/EFMissingETFromFEBHeader.cxx index a36934e4b625197ef775829eff473e427aaf5398..a966f478c61ba81b10b3cc9b7b3e1824a74e2288 100644 --- a/Trigger/TrigAlgorithms/TrigEFMissingET/src/EFMissingETFromFEBHeader.cxx +++ b/Trigger/TrigAlgorithms/TrigEFMissingET/src/EFMissingETFromFEBHeader.cxx @@ -121,7 +121,8 @@ StatusCode EFMissingETFromFEBHeader::execute(xAOD::TrigMissingET * /* met */ , TrigEFMissingEtHelper * metHelper, const xAOD::CaloClusterContainer * /* caloCluster */, const xAOD::JetContainer * /* jets */, const xAOD::TrackParticleContainer * /*trackContainer*/, - const xAOD::VertexContainer * /*vertexContainer*/ ) + const xAOD::VertexContainer * /*vertexContainer*/, + const xAOD::MuonContainer * /*muonContainer*/ ) { ATH_MSG_DEBUG( "EFMissingETFromFEBHeader::execute() has been called" ); diff --git a/Trigger/TrigAlgorithms/TrigEFMissingET/src/EFMissingETFromHelper.cxx b/Trigger/TrigAlgorithms/TrigEFMissingET/src/EFMissingETFromHelper.cxx index 7c8fd7989e8b613a9bac2eaba8aca2ee0c7aabed..c7b01da03dc299dd02105b216df61babacecb83e 100644 --- a/Trigger/TrigAlgorithms/TrigEFMissingET/src/EFMissingETFromHelper.cxx +++ b/Trigger/TrigAlgorithms/TrigEFMissingET/src/EFMissingETFromHelper.cxx @@ -78,14 +78,15 @@ StatusCode EFMissingETFromHelper::execute() StatusCode EFMissingETFromHelper::executeMT(xAOD::TrigMissingET *met, TrigEFMissingEtHelper *metHelper) { - return execute(met, metHelper, nullptr, nullptr, nullptr, nullptr); + return execute(met, metHelper, nullptr, nullptr, nullptr, nullptr, nullptr); } StatusCode EFMissingETFromHelper::execute(xAOD::TrigMissingET *met , TrigEFMissingEtHelper *metHelper , const xAOD::CaloClusterContainer * /* caloCluster */, const xAOD::JetContainer * /* jets */, const xAOD::TrackParticleContainer * /*trackContainer*/, - const xAOD::VertexContainer * /*vertexContainer*/ ) + const xAOD::VertexContainer * /*vertexContainer*/, + const xAOD::MuonContainer * /*muonContainer*/ ) { ATH_MSG_DEBUG( "EFMissingETFromHelper::execute() called" ); diff --git a/Trigger/TrigAlgorithms/TrigEFMissingET/src/EFMissingETFromJets.cxx b/Trigger/TrigAlgorithms/TrigEFMissingET/src/EFMissingETFromJets.cxx index a297d99f1c86d5c1a9faf6e9e1130a243d371f57..e09c9a7166c661350457909224324816a8c6b515 100644 --- a/Trigger/TrigAlgorithms/TrigEFMissingET/src/EFMissingETFromJets.cxx +++ b/Trigger/TrigAlgorithms/TrigEFMissingET/src/EFMissingETFromJets.cxx @@ -92,7 +92,8 @@ StatusCode EFMissingETFromJets::execute(xAOD::TrigMissingET *, const xAOD::CaloClusterContainer * /* caloCluster */, const xAOD::JetContainer *MHTJetContainer, const xAOD::TrackParticleContainer * /*trackContainer*/, - const xAOD::VertexContainer * /*vertexContainer*/ ) + const xAOD::VertexContainer * /*vertexContainer*/, + const xAOD::MuonContainer * /*muonContainer*/ ) { ATH_MSG_DEBUG( "called EFMissingETFromJets::execute()" ); // EFMissingET_Fex_Jets diff --git a/Trigger/TrigAlgorithms/TrigEFMissingET/src/EFMissingETFromTrackAndClusters.cxx b/Trigger/TrigAlgorithms/TrigEFMissingET/src/EFMissingETFromTrackAndClusters.cxx new file mode 100644 index 0000000000000000000000000000000000000000..91ba2e45b4258d91807738f006699081dd4f5565 --- /dev/null +++ b/Trigger/TrigAlgorithms/TrigEFMissingET/src/EFMissingETFromTrackAndClusters.cxx @@ -0,0 +1,816 @@ +/* + Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +*/ + +/******************************************************************** + +NAME: EFMissingETFromTrackAndClusters.h +PACKAGE: Trigger/TrigAlgorithms/TrigEFMissingET + +AUTHORS: Renjie Wang (renjie.wang@cern.ch) + Use tracks and vertices to remove pile-up clusters by Constituent-level pile-up mitigation techniques + (cluster vertex fraction, Voronoi Subtraction, SofterKiller ) + the track-based soft term is also added to MET + +CREATED: Aug 05, 2018 + + + ********************************************************************/ +#include "TrigEFMissingET/EFMissingETFromTrackAndClusters.h" + +#include "TrigTimeAlgs/TrigTimerSvc.h" +#include "CxxUtils/sincosf.h" + +#include "EventKernel/ISignalState.h" +#include "EventKernel/SignalStateHelper.h" +#include "FourMomUtils/xAODP4Helpers.h" + +#include <cmath> +#include <string> +using namespace std; + + +namespace SortHelper { +// +// For Sorting +// +struct pt_sort { + + inline bool operator() (const TLorentzVector& lhs, const TLorentzVector& rhs) { + return (lhs.Pt() > rhs.Pt()); + } + + inline bool operator() (const TLorentzVector* lhs, const TLorentzVector* rhs) { + return (lhs->Pt() > rhs->Pt()); + } + + inline bool operator() (const xAOD::IParticle& lhs, const xAOD::IParticle& rhs) { + return (lhs.pt() > rhs.pt()); + } + + inline bool operator() (const xAOD::IParticle* lhs, const xAOD::IParticle* rhs) { + return (lhs->pt() > rhs->pt()); + } +}; + + +template<typename T> +T sort_container_pt(T* inCont) +{ + T sortedCont(SG::VIEW_ELEMENTS); + for(auto el : *inCont) sortedCont.push_back( el ); + std::sort(sortedCont.begin(), sortedCont.end(), pt_sort()); + return sortedCont; +} + +template<typename T> +const T sort_container_pt(const T* inCont) +{ + ConstDataVector<T> sortedCont(SG::VIEW_ELEMENTS); + + for(auto el : *inCont) sortedCont.push_back( el ); + std::sort(sortedCont.begin(), sortedCont.end(), pt_sort()); + return *sortedCont.asDataVector(); +} + +struct PJcomp { + bool operator() (const std::pair<fastjet::PseudoJet, std::vector<float> >& lhsp, const std::pair<fastjet::PseudoJet, std::vector<float> >& rhsp) { + fastjet::PseudoJet lhs = lhsp.first; + fastjet::PseudoJet rhs = rhsp.first; + return lhs.pt()>rhs.pt(); + //The comparator must be a strict weak ordering. + } +}; + + +} // end SortHelper + + + +EFMissingETFromTrackAndClusters::EFMissingETFromTrackAndClusters(const std::string& type, + const std::string& name, + const IInterface* parent) : + EFMissingETBaseTool(type, name, parent) +{ + declareProperty("SaveUncalibrated", m_saveUncalibrated = false ,"save uncalibrated topo. clusters"); + // standalone module. + + // declare configurables + m_fextype = FexType::TOPO; + m_metHelperPosition = 18; + + // Properties are as follows: + m_lambdaCalDivide = 317; + m_isCaloSplit = false; //If false, SK is run the same on all clusters. If true, SK is run separately for clusters in the ECal and the HCal. + m_gridSpacing = 0.6; // The grid size that should be applied for the SK algorithm. Suggested values between 0.3 and 0.6 + m_eCalGrid = 0.5; //Only necessary if isCaloSplit == true. The SK grid spacing used for the ECal. + m_hCalGrid = 0.5; // Only necessary if isCaloSplit == true. The SK grid spacing used for the HCal. + m_rapmin = 0.0; //The minimum (absolute) rapidity over which to calculate SK + m_rapmax = 2.5; //The maximum (absolute) rapidity over which to calculate SK + m_rapminApplied = 0; //The minimum (absolute) rapidity over which to apply SK + m_rapmaxApplied = 10; //The maximum (absolute) rapidity over which to apply SK + + + m_deltaR = 0.01; + //initialization to make coverity happy: + m_clusterstate = xAOD::CaloCluster_v1::UNCALIBRATED; + +} + + +EFMissingETFromTrackAndClusters::~EFMissingETFromTrackAndClusters() +{ +} + + +StatusCode EFMissingETFromTrackAndClusters::initialize() +{ + + ATH_MSG_DEBUG( "called EFMissingETFromTrackAndClusters::initialize()" ); + + /// timers + if( service( "TrigTimerSvc", m_timersvc).isFailure() ) + ATH_MSG_WARNING( name() << ": Unable to locate TrigTimer Service" ); + + if (m_timersvc) { + // global time + std::string basename=name()+".TotalTime"; + m_glob_timer = m_timersvc->addItem(basename); + } // if timing service + + if(m_saveUncalibrated) m_metHelperPosition = 13; + + + m_clusterstate = (m_saveUncalibrated) ? xAOD::CaloCluster_v1::UNCALIBRATED : xAOD::CaloCluster_v1::CALIBRATED; + + + + return StatusCode::SUCCESS; +} + + +StatusCode EFMissingETFromTrackAndClusters::execute() +{ + return StatusCode::SUCCESS; +} + +StatusCode EFMissingETFromTrackAndClusters::finalize() +{ + ATH_MSG_DEBUG( "called EFMissingETFromTrackAndClusters::finalize()" ); + + return StatusCode::SUCCESS; + +} + +StatusCode EFMissingETFromTrackAndClusters::execute(xAOD::TrigMissingET * /* met */ , + TrigEFMissingEtHelper *metHelper , + const xAOD::CaloClusterContainer *caloCluster, const xAOD::JetContainer * /* jets */, + const xAOD::TrackParticleContainer * trackContainer, + const xAOD::VertexContainer * vertexContainer, + const xAOD::MuonContainer * muonContainer ) +{ + + ATH_MSG_DEBUG( "called EFMissingETFromTrackAndClusters::execute()" ); + + if(m_timersvc) + m_glob_timer->start(); // total time + + /// fetching the topo. cluster component + TrigEFMissingEtComponent* metComp = nullptr; + metComp = metHelper->GetComponent(metHelper->GetElements() - m_metHelperPosition); // fetch Cluster component + if (metComp==0) { + ATH_MSG_ERROR( "cannot fetch Topo. cluster component!" ); + return StatusCode::FAILURE; + } + if(string(metComp->m_name).substr(0,2)!="TC") { + ATH_MSG_ERROR( "fetched " << metComp->m_name << " instead of the Clusters component!" ); + return StatusCode::FAILURE; + } + + ATH_MSG_DEBUG( "fetched metHelper component \"" << metComp->m_name << "\"" ); + + + if ( (metComp->m_status & m_maskProcessed)==0 ) { // not yet processed + metComp->Reset(); // reset component... + } else { // skip if processed + if(m_timersvc) m_glob_timer->stop(); // total time + return StatusCode::SUCCESS; + } + + // set status to Processing + metComp->m_status |= m_maskProcessing; + + //###################################################################### + + + ATH_MSG_DEBUG( "num of tracks: " << trackContainer->size() ); + ATH_MSG_DEBUG( "num of topoclusters: " << caloCluster->size() ); + ATH_MSG_DEBUG( "num of vertices: " << vertexContainer->size() ); + + std::vector<const xAOD::Muon*> MuonVec; + if(muonContainer!=nullptr) { + for (auto muon : *muonContainer) { + MuonVec.push_back(muon); + } + } + ATH_MSG_DEBUG( "num of muons: " << MuonVec.size() ); + + + // HLT Muons + std::vector<const xAOD::TrackParticle*> vecOfMuonTrk; + for( const xAOD::Muon* muon : MuonVec ) { + const xAOD::Muon::MuonType muontype = muon->muonType(); + // combined or segment tagged muon + if(muontype == xAOD::Muon::MuonType::Combined || muontype == xAOD::Muon::MuonType::SegmentTagged ) { + const xAOD::TrackParticle* idtrk = muon->trackParticle( xAOD::Muon::TrackParticleType::InnerDetectorTrackParticle ); + if(idtrk==0) continue; + if(fabs(muon->pt())<5000) continue; + + + bool find_duplicate(false); + for(std::vector<const xAOD::TrackParticle*>::size_type idx=0; idx<vecOfMuonTrk.size(); idx++) { + float deltaR_ = idtrk->p4().DeltaR(vecOfMuonTrk[idx]->p4()); + if(deltaR_< m_deltaR) { + find_duplicate = true; + break; + } + } //end of loop over stored muon tracks + + ATH_MSG_DEBUG( "Found muon track --> pt = " << idtrk->pt()/1000. + << " eta= " << idtrk->eta() + << " phi= " << idtrk->phi() + << " Found duplicate=" << find_duplicate + ); + if(find_duplicate) continue; + + vecOfMuonTrk.push_back(idtrk); // store for testing future muon tracks for double counting prevention + + } + } + + // vertex + const xAOD::Vertex* primaryVertexFTK = nullptr; + for (auto vertex: *vertexContainer) { + //count the number of vertices with at least 2 tracks + ATH_MSG_DEBUG ( " x: " << vertex->x() << "\ty: " << vertex->y() << "\tz: " << vertex->z() + << "\tntracks: " << vertex->nTrackParticles() + << "\ttype: " << vertex->vertexType() + << "\txAOD::VxType::PriVtx: " << xAOD::VxType::PriVtx + ); + //if( vertex->nTrackParticles() < 2 ) continue; + if( vertex->vertexType() == xAOD::VxType::PriVtx ) { + primaryVertexFTK = vertex; + break; + } + } + + + //having FTK vertex, and find the associated tracks + std::vector<const xAOD::TrackParticle*> TrackVec_FTK_PV; + TrackVec_FTK_PV.clear(); + + std::vector<const xAOD::TrackParticle*> goodTracksnoMuons;; + goodTracksnoMuons.clear(); + + if(primaryVertexFTK!=nullptr) { + + const std::vector< ElementLink< xAOD::TrackParticleContainer> > tpLinks = primaryVertexFTK->trackParticleLinks(); + ATH_MSG_DEBUG ( " tpLinks size: " << tpLinks.size()); + if(tpLinks.size() != 0) { + + for(const auto& tp_elem : tpLinks ) { + if (tp_elem != nullptr && tp_elem.isValid()) { + const xAOD::TrackParticle* itrk = *tp_elem; + + ATH_MSG_DEBUG ( "\titrk pt: " << itrk->pt()/1000. << "\teta: " << itrk->eta() << "\tphi: " << itrk->phi() + //<< "\tvertex: " << itrk->vertex() + << "\tz0: " << itrk->z0() + << "\tvz: " << itrk->vz() + << "\ttheta: " << itrk->theta() + //<< "\tdZ: " << fabs((itrk->z0()+itrk->vz()-primaryVertexFTK->z())*sin(itrk->theta())) + //<< "\tisfromPV: " << (itrk->vertex()==primaryVertexFTK) + ); + + TrackVec_FTK_PV.push_back(itrk); + + + //saving tracks for soft-term + float t_pt = itrk->pt() * 0.001 ; + float t_eta = itrk->eta(); + //float t_phi = itrk->phi(); + //float t_en = itrk->e() * 0.001; + if(t_pt<0.4 || fabs(t_eta)>2.5) continue; + + bool findMuonTrack(false); + for(std::vector<const xAOD::TrackParticle*>::size_type idx=0; idx<vecOfMuonTrk.size(); idx++) { + float deltaR_ = itrk->p4().DeltaR(vecOfMuonTrk[idx]->p4()); + if(deltaR_<m_deltaR) { + findMuonTrack=true; + break; + } + } + if(findMuonTrack) continue; + + goodTracksnoMuons.push_back(itrk); + + } + } + } + + } // having FTK vertex + + + + ///////////////////////////////////////// + // Voronoi Subtraction + //////////////////////////////////////// + + + + + //CaloClusterChangeSignalStateList stateHelperList; + std::vector<fastjet::PseudoJet> clusters; + clusters.reserve(caloCluster->size()); + for(auto clust: *caloCluster) { + //read in clusters as PseudoJets + //if(m_doLC) stateHelperList.add(clust,xAOD::CaloCluster::State(1)); //default is calibrated but we can make it explicit anyway + //else stateHelperList.add(clust,xAOD::CaloCluster::State(0)); + + fastjet::PseudoJet test; + test = fastjet::PseudoJet(clust->p4()); + if(clust->e() >= 0) { //definition of clusters (\label{clust_def}) + clusters.push_back(test); + if(m_debug) std::cout << clust->pt() << std::endl; + } + } + + const char* APP_NAME = "VoronoiWeightTool::process()"; + std::vector< std::pair< fastjet::PseudoJet, std::vector<float> > > ptvec; //vector of pairs of PJs and their corrected pTs + if(makeVoronoiClusters(clusters, ptvec) != StatusCode::SUCCESS) ATH_MSG_ERROR(APP_NAME << ": Error in makeVoronoiClusters"); + std::sort(ptvec.begin(), ptvec.end(), SortHelper::PJcomp()); + + if(m_doSpread && m_nSigma > 0) ATH_MSG_ERROR(APP_NAME << ": Can't combine spreading with nSigma yet"); + int alg; + if(m_doSpread && m_nSigma == 0) alg = 3; + if(!m_doSpread && m_nSigma == 0) alg = 1; + if(!m_doSpread && m_nSigma > 0) alg = 2; + + size_t i=0; + std::vector<const xAOD::CaloCluster*> SortedAlltopoClusters; + for(auto el : *caloCluster) SortedAlltopoClusters.push_back( el); + std::sort(SortedAlltopoClusters.begin(), SortedAlltopoClusters.end(), SortHelper::pt_sort()); + + + // need new colletion need to change the energy of cluster, + //and remove the zero-energy clusters + std::vector<xAOD::CaloCluster> VoronoiWeightedTopoClusters; + VoronoiWeightedTopoClusters.clear(); + + + for(auto clust : SortedAlltopoClusters) { + + xAOD::CaloCluster aclust = (*clust); + + float newE; + //There should be the same number of positive E Clusters in the container as clusters in the ptvec + bool endContainer = clust->e()<0; //consistent with definition of clusters on L.~\ref{clust_def} + bool endVec = i>=ptvec.size(); + if(endVec && endContainer) { + newE = 0; //remove negative energy clusters + } else if(endContainer || endVec) { + ATH_MSG_ERROR(APP_NAME << ": Clusters don't have same number of elements."); + return StatusCode::FAILURE; + } else { + //And the clusters should match + float Containerpt = clust->pt(); + float PJpt = ptvec[i].first.pt(); + if(m_debug) { + std::cout << "Container: " << Containerpt << std::endl; + std::cout << "Ptvec: " << PJpt << std::endl; + } + if (fabs(Containerpt-PJpt) > 0.1) { + if(m_debug) std::cout << fabs(Containerpt-PJpt) << std::endl; + ATH_MSG_ERROR(APP_NAME << ": Clusters don't match."); + return StatusCode::FAILURE; + } + newE = ptvec[i].second[alg]*cosh(clust->eta()); + } + + //float w = newE/clust->e(); + aclust.setE(newE); + if(newE>0) VoronoiWeightedTopoClusters.push_back(aclust); + + i++; + } + + + + ////////////////////////////////////// + //Soft Killer + ////////////////////////////////////// + + if(m_isCaloSplit == false) RunClusters(VoronoiWeightedTopoClusters); + else RunSplitClusters(VoronoiWeightedTopoClusters); + + std::vector<xAOD::CaloCluster> SKWeightedTopoClusters; + + for(xAOD::CaloCluster cl : VoronoiWeightedTopoClusters) { + int w = 1; + if(m_isCaloSplit == false) w = calculateWeight(cl); + else w = calculateSplitWeight(cl); + float clust_e = cl.e(); // Cluster energy + float newclust_e = clust_e * w; + //cout << "newclust_e: " << newclust_e << endl; + cl.setE( newclust_e ); + if(newclust_e>0) SKWeightedTopoClusters.push_back(cl); + } + + + /////////////////////////////////////// + // Cluster Vertex Fraction + /////////////////////////////////////// + std::vector<float> cvfs; + setCVF(SKWeightedTopoClusters,trackContainer,TrackVec_FTK_PV,cvfs); + + + + //###################################################################### + + size_t iclus=0; + std::vector<xAOD::CaloCluster> HStopocls; + for(auto clust: SKWeightedTopoClusters) { //Es are sorted by default order + + float phi = clust.phi(); + float cosPhi, sinPhi; + sincosf(phi, &sinPhi, &cosPhi); + float eta = clust.eta(); + + float Et = clust.pt(); + float Ex = Et*cosPhi; + float Ey = Et*sinPhi; + float Ez = Et*sinhf(eta); + float E = clust.p4().E(); + + bool isPU_topocl(false); + if(cvfs[iclus]>-1 && cvfs[iclus]<=0.1) { + if( Et < 3000 ) { + isPU_topocl = true; + } + } + + if(!isPU_topocl) { + metComp->m_ex -= Ex; + metComp->m_ey -= Ey; + metComp->m_ez -= Ez; + metComp->m_sumEt += Et; + metComp->m_sumE += E; + metComp->m_usedChannels += 1; + metComp->m_sumOfSigns += static_cast<short int>(floor(copysign(1.0,Et)+0.5)); + + HStopocls.push_back(clust); + } + + iclus++; + } + + //adding track-based soft-term + for( const xAOD::TrackParticle* track : goodTracksnoMuons ) { + + float trketa = track->eta(); + float trkphi = track->phi(); + float trkpt = track->pt(); + float trkcharge = track->charge(); + + float deltaphi = ExtrapolationEstimate(trkpt,trketa,trkcharge); + float newtrkphi = -999.0; + if(deltaphi>-998.0) newtrkphi = trkphi-deltaphi; + + if(trkpt<1000) continue; + + float dRmin(999); + for(auto clust: HStopocls) { + float dR = xAOD::P4Helpers::deltaR(clust,trketa, newtrkphi); + if(dR<dRmin) dRmin=dR; + } + + if(dRmin>0.1) { + metComp->m_ex -= track->p4().Px(); + metComp->m_ey -= track->p4().Py(); + metComp->m_ez -= track->p4().Pz(); + metComp->m_sumEt += track->pt(); + metComp->m_sumE += track->e(); + } + } + + + + + // move from "processing" to "processed" state + metComp->m_status ^= m_maskProcessing; // switch off bit + metComp->m_status |= m_maskProcessed; // switch on bit + + if(m_timersvc) + m_glob_timer->stop(); // total time + + return StatusCode::SUCCESS; +} + + +void EFMissingETFromTrackAndClusters::setCVF( + std::vector<xAOD::CaloCluster> clusters, + const xAOD::TrackParticleContainer* tracks, + std::vector<const xAOD::TrackParticle*> TrackVec_FTK_PV, + std::vector<float>& cvfs) +{ + //static SG::AuxElement::Decorator< float > newphi("newphi"); + for(auto clust: clusters) { //cvfs are in default order + //std::cout << "c: " << clust->pt() << ";" << clust->eta() << ";" << clust->phi() << std::endl; + float num = 0; + float den = 0; + + float cleta = clust.eta(); + + for(auto track: *tracks) { + + bool isTrackClusterMatched(true); + //isTrackClusterMatched = xAOD::P4Helpers::isInDeltaR(*clust,*track,0.1,false); + + float trketa = track->eta(); + float trkphi = track->phi(); + float trkpt = track->pt(); + float trkcharge = track->charge(); + + float deta = trketa-cleta; + isTrackClusterMatched &= (fabs(deta)<0.1); + + float deltaphi = ExtrapolationEstimate(trkpt,trketa,trkcharge); + float newtrkphi = -999.0; + if(deltaphi>-998.0) newtrkphi = trkphi-deltaphi; + + float dR = xAOD::P4Helpers::deltaR(clust,trketa,newtrkphi); + isTrackClusterMatched &= (dR<0.1); + + if(isTrackClusterMatched) { + float trkpt = track->pt(); + //std::cout << "t: " << track->pt() << ";" << track->eta() << ";" << track->phi() << std::endl; + + bool isfromPV(false); + for( const xAOD::TrackParticle* itrkPV : TrackVec_FTK_PV ) { + float deltaR_ = track->p4().DeltaR(itrkPV->p4()); + if(deltaR_ < m_deltaR) { + isfromPV=true; + break; + } + } + + if (isfromPV) { + //PV + num+=trkpt; + den+=trkpt; + } else { + //pileup + den+=trkpt; + } + } + } + float cvf; + if(den==0) cvf = -1; + else cvf = num/den; //Rpt + cvfs.push_back(cvf); + //if(cvf==0 and clust->pt()>2000) std::cout << clust->pt() << std::endl; + //std::cout << clust->pt() << ";" << cvf << std::endl; + } +} + + +float EFMissingETFromTrackAndClusters::ExtrapolationEstimate(float pt, float eta, float charge) +{ + const float params[3] = { -14.6027571, -44.7818374, 540.656643}; + float eptsindeltaphi = params[0]*pow(eta,4)+params[1]*pow(eta,2)+params[2]*pow(eta,0); + float sindeltaphi = eptsindeltaphi/(pt*charge); + if (fabs(sindeltaphi)>1.0) return -999.0; //never reaches the detector + float deltaphi = asin(sindeltaphi); + return deltaphi; +} + + + +StatusCode EFMissingETFromTrackAndClusters::makeVoronoiClusters(std::vector<fastjet::PseudoJet>& clusters,std::vector< std::pair< fastjet::PseudoJet,std::vector<float> > >& correctedptvec) const +{ + std::vector<fastjet::PseudoJet> & inputConst = clusters; + fastjet::Selector jselector = fastjet::SelectorAbsRapRange(0.0,2.1); + fastjet::JetAlgorithm algo = fastjet::kt_algorithm; + float jetR = 0.4; + fastjet::JetDefinition jetDef(algo, jetR,fastjet::E_scheme, fastjet::Best); + fastjet::AreaDefinition area_def(fastjet::voronoi_area, fastjet::VoronoiAreaSpec(0.9)); + + fastjet::ClusterSequenceArea clustSeq(inputConst, jetDef, area_def); + fastjet::JetMedianBackgroundEstimator bge(jselector,jetDef,area_def); + + bge.set_particles(inputConst); + std::vector<fastjet::PseudoJet> inclusiveJets = sorted_by_pt(clustSeq.inclusive_jets(0)); + + int nsigma = m_nSigma; + float rho = bge.rho(); + float sigma = bge.sigma(); + for(unsigned int iJet = 0 ; iJet < inclusiveJets.size() ; iJet++) { + fastjet::PseudoJet jet = inclusiveJets[iJet]; + std::vector<fastjet::PseudoJet> constituents = jet.constituents(); + for(auto cons : constituents) { + float pt = cons.pt(); + float area = cons.area(); + float subPt = pt-rho*area; + //std::cout << "Area: " << area << "; Rho: " << bge.rho() << "; pt: " << constituents[iCons].pt() << "; corrected: " << correctedPt << std::endl; + //std::cout << "Pt: " << cons.pt() << "; Eta: " << cons.eta() <<"; Phi: " << cons.phi() << std::endl; + //fastjet::PseudoJet constituentP; + /*if(correctedPt<0.) continue; + constituentP.reset_PtYPhiM(correctedPt, constituents[iCons].rap(), constituents[iCons].phi(), constituents[iCons].m()); + clusters_voronoi.push_back(constituentP);*/ + //correctedptmap[cons] = correctedPt; + float voro0pt = subPt * (subPt > 0); + float voro1pt = subPt * (subPt > sqrt(area)*sigma*(float)nsigma); + std::vector<float> algopts; + algopts.push_back(subPt); + algopts.push_back(voro0pt); + algopts.push_back(voro1pt); + algopts.push_back(0); + std::pair <fastjet::PseudoJet,std::vector<float> > pjcptpair (cons,algopts); + correctedptvec.push_back(pjcptpair); + } // end loop over cons + } // end loop over jets + //std::cout << "Size: " << correctedptmap.size() << std::endl; + + if(m_doSpread) spreadPt(correctedptvec); + + return StatusCode::SUCCESS; +} + + + +void EFMissingETFromTrackAndClusters::spreadPt(std::vector< std::pair< fastjet::PseudoJet,std::vector<float> > >& correctedptvec, float spreadr, float alpha) const +{ + //default alpha = 2 + //Set up neighbors within spreadr: + int clusters = correctedptvec.size(); + std::vector<float> spreadPT(clusters); + std::vector<bool> isPositive(clusters); + for(int iCl = 0; iCl < clusters; iCl++) { + spreadPT[iCl] = correctedptvec[iCl].second[0]; + isPositive[iCl] = spreadPT[iCl]>0; + } + + std::vector<std::vector<std::pair<int,float> > > cluster_drs; //for each cluster, list of nearby positive pT clusters and their distances + for(int iCl = 0; iCl < clusters; iCl++) { + fastjet::PseudoJet icluster = correctedptvec[iCl].first; + //float ieta = icluster.eta(); + //float iphi = icluster.phi(); + std::vector<std::pair<int,float> > this_cluster_drs; + for(int jCl = 0; jCl < clusters; jCl++) { + if(iCl == jCl) continue; + if(!isPositive[jCl]) continue; + fastjet::PseudoJet jcluster = correctedptvec[jCl].first; + //float jeta = jcluster.eta(); + //float jphi = jcluster.phi(); + float dphi = icluster.delta_phi_to(jcluster); + float deta = icluster.eta() - jcluster.eta(); //fastjet::pseudojet::delta_R(const PseudoJet& other) gives rap-phi distance + float dr2 = pow(dphi,2) + pow(deta,2); + if(dr2 > pow(spreadr,2)) continue; + std::pair<int,float> jdrpair (jCl,dr2); + this_cluster_drs.push_back(jdrpair); + } + cluster_drs.push_back(this_cluster_drs); + } + + + for(int i = 0; i < clusters; i++) { + if(!(spreadPT[i]<0)) continue; //only spread from negative pT clusters + //find closest positive PT cluster: + float sumdR2 = 0; + //iterate over nearby positive pT clusters + for(size_t j=0; j<cluster_drs[i].size(); j++) { + //cout << "j: " << j << " realid: " << realid << " Eta: " << points[realid][0]<< " Phi: " << points[realid][1] << " Pt:" << spreadPT[realid] << " Dist: " << dists[j] << endl; // dists[j] = dR^2 + float dr = cluster_drs[i][j].second; + if(dr>0) sumdR2 += 1./(pow(dr,alpha/2)); + } + //if at least one neighbor + if(sumdR2 > 0) { + float spreadPT_orig = spreadPT[i]; + //std::cout << "orig: " << spreadPT_orig << std::endl; + for(size_t j=0; j<cluster_drs[i].size(); j++) { + float dr = cluster_drs[i][j].second; + float realid = cluster_drs[i][j].first; + if(dr>0) { + float weight = (1./pow(dr,alpha/2))/sumdR2; + //std::cout << dr << "; " << weight << std::endl; + //std::cout << "Before spreading: " << weight << ";" << weight*spreadPT_orig << ";" << spreadPT[realid] << std::endl; + if(fabs(weight*spreadPT_orig)>spreadPT[realid]) { + spreadPT[i]+=spreadPT[realid]; + spreadPT[realid]=0; + } else { + spreadPT[realid]+=weight*spreadPT_orig; + spreadPT[i]-=weight*spreadPT_orig; + } + //std::cout << "After spreading: " << weight << ";" << weight*spreadPT_orig << ";" << spreadPT[realid] << std::endl; + } + } + //std::cout << "final: " << spreadPT[i] << std::endl; + } + //cout << i << ";" << cluster(i,key).Float("correctedPT") << ";" << spreadPT[i]<< endl; + } + + /*float totalcorrpt=0, totalspreadpt=0; + for(int i=0; i<clusters; i++){ totalcorrpt+=cluster(i,key).Float("correctedPT"); totalspreadpt+=spreadPT[i];} + cout << totalcorrpt << ";" << totalspreadpt << endl; //should be the same*/ + + for(int iCl = 0; iCl < clusters; iCl++) { + correctedptvec[iCl].second[3] = spreadPT[iCl] * (spreadPT[iCl] > 0); + } +} + + + +//########## +// Softer Killer +// Finds the pT cut for this event based on the SK results +// The clustSK collection contains all clusters that aren't cut, so clusters below +// its min pT are cut +double EFMissingETFromTrackAndClusters::findMinPt(std::vector<fastjet::PseudoJet> *clustSK) const +{ + double minPt = 999999999999; + + for(unsigned int i=0; i < clustSK->size(); i++) { + if( (*clustSK)[i].pt() < minPt) minPt = (*clustSK)[i].pt(); + } + + // There is a small rounding error which I account for this way + return (minPt - 1e-12); +} + +// Reweights clusters (when calo isn't split) +void EFMissingETFromTrackAndClusters::RunClusters(std::vector<xAOD::CaloCluster> clust) const +{ + vector<fastjet::PseudoJet> clustPJ; + + for(xAOD::CaloCluster cl : clust) { + if(cl.e() > 0) clustPJ.push_back( fastjet::PseudoJet( cl.p4() )); + } + + fastjet::Selector selector = fastjet::SelectorAbsRapRange(m_rapmin, m_rapmax); + fastjet::RectangularGrid SKgrid(-m_rapmax, m_rapmax, m_gridSpacing, m_gridSpacing, selector); + fastjet::contrib::SoftKiller softkiller(SKgrid); + std::vector<fastjet::PseudoJet> clustSK = softkiller(selector(clustPJ)); + + m_minPt = findMinPt(&clustSK); +} + +void EFMissingETFromTrackAndClusters::RunSplitClusters(std::vector<xAOD::CaloCluster> clust) const +{ + vector<fastjet::PseudoJet> clustPJ_ECal; + vector<fastjet::PseudoJet> clustPJ_HCal; + + for(xAOD::CaloCluster cl : clust) { + double center_lambda; + cl.retrieveMoment(xAOD::CaloCluster::CENTER_LAMBDA,center_lambda); + if( center_lambda < m_lambdaCalDivide && cl.e() > 0) clustPJ_ECal.push_back( fastjet::PseudoJet( cl.p4() )); + if( center_lambda >= m_lambdaCalDivide && cl.e() > 0) clustPJ_HCal.push_back( fastjet::PseudoJet( cl.p4() )); + } + + fastjet::Selector selector = fastjet::SelectorAbsRapRange(m_rapmin, m_rapmax); + fastjet::RectangularGrid SKgridECal(-m_rapmax, m_rapmax, m_eCalGrid, m_eCalGrid, selector); + fastjet::contrib::SoftKiller softkillerECal(SKgridECal); + std::vector<fastjet::PseudoJet> clustSK_ECal = softkillerECal(selector(clustPJ_ECal)); + m_minPtECal = findMinPt(&clustSK_ECal); + + fastjet::RectangularGrid SKgridHCal(-m_rapmax, m_rapmax, m_hCalGrid, m_hCalGrid, selector); + fastjet::contrib::SoftKiller softkillerHCal(SKgridHCal); + std::vector<fastjet::PseudoJet> clustSK_HCal = softkillerHCal(selector(clustPJ_HCal)); + m_minPtHCal = findMinPt(&clustSK_HCal); +} + + +int EFMissingETFromTrackAndClusters::calculateWeight(xAOD::CaloCluster cl) const +{ + // If the cluster pT is below the SoftKiller pT cut, rescale 4-momentum to 0 + if( abs(cl.eta()) < m_rapminApplied || abs(cl.eta()) > m_rapmaxApplied) return 1; + if( cl.pt() < m_minPt) return 0; + return 1; +} + + +int EFMissingETFromTrackAndClusters::calculateSplitWeight(xAOD::CaloCluster cl) const +{ + if( abs(cl.eta()) < m_rapminApplied || abs(cl.eta()) > m_rapmaxApplied) return 1; + double center_lambda; + + if(!cl.retrieveMoment(xAOD::CaloCluster::CENTER_LAMBDA,center_lambda)) center_lambda = 0; + + //Make a separate pT cut for the ECal and HCal + if( center_lambda < m_lambdaCalDivide && cl.pt() < m_minPtECal) return 0; + if( cl.pt() < m_minPtHCal) return 0; + return 1; +} + + + + + diff --git a/Trigger/TrigAlgorithms/TrigEFMissingET/src/EFMissingETFromTrackAndJets.cxx b/Trigger/TrigAlgorithms/TrigEFMissingET/src/EFMissingETFromTrackAndJets.cxx index b826140027ef5dbdd828f8a61885c346ae51f4b4..e1c46b1e19ba52c7bed73669aafe5b5bb747e927 100644 --- a/Trigger/TrigAlgorithms/TrigEFMissingET/src/EFMissingETFromTrackAndJets.cxx +++ b/Trigger/TrigAlgorithms/TrigEFMissingET/src/EFMissingETFromTrackAndJets.cxx @@ -35,8 +35,7 @@ EFMissingETFromTrackAndJets::EFMissingETFromTrackAndJets(const std::string& type const std::string& name, const IInterface* parent) : EFMissingETBaseTool(type, name, parent), - m_trackselTool("InDet::InDetTrackSelectionTool/TrackSelectionTool", this ), - m_muontrackselTool("InDet::InDetTrackSelectionTool/MuonTrackSelectionTool", this ) + m_trackselTool("InDet::InDetTrackSelectionTool/TrackSelectionTool", this ) { declareProperty("EtaSeparation", m_etacut = 2.2 ,"Cut to split into forward and central jets -- needs to be positive"); declareProperty("CentralpTCut", m_central_ptcut = 0.0 ,"pT Cut for central jets"); @@ -44,7 +43,6 @@ EFMissingETFromTrackAndJets::EFMissingETFromTrackAndJets(const std::string& type declareProperty("TrackpTCut", m_track_ptcut = 0.0 ,"pT Cut for online tracks"); declareProperty("CentralJetJVTCut", m_central_jvtcut = 0.9 ,"Jet JVT Cut for central jets"); declareProperty("TrackSelectionTool", m_trackselTool ); - declareProperty("MuonTrackSelectionTool", m_muontrackselTool ); m_fextype = FexType::JET; m_etacut = fabs(m_etacut); @@ -60,7 +58,7 @@ EFMissingETFromTrackAndJets::~EFMissingETFromTrackAndJets() StatusCode EFMissingETFromTrackAndJets::initialize() { - ATH_MSG_DEBUG( "called EFMissingETFromTrackAndJets::initialize()" ); + ATH_MSG_DEBUG( "called EFMissingETFromTrackAndJets::initialize()" ); /// timers if( service( "TrigTimerSvc", m_timersvc).isFailure() ) @@ -94,7 +92,7 @@ StatusCode EFMissingETFromTrackAndJets::execute() StatusCode EFMissingETFromTrackAndJets::finalize() { - ATH_MSG_DEBUG( "called EFMissingETFromTrackAndJets::finalize()" ); + ATH_MSG_DEBUG( "called EFMissingETFromTrackAndJets::finalize()" ); return StatusCode::SUCCESS; @@ -105,278 +103,310 @@ StatusCode EFMissingETFromTrackAndJets::execute(xAOD::TrigMissingET *, const xAOD::CaloClusterContainer * /* caloCluster */, const xAOD::JetContainer *MHTJetContainer, const xAOD::TrackParticleContainer *trackContainer, - const xAOD::VertexContainer *vertexContainer) + const xAOD::VertexContainer *vertexContainer, + const xAOD::MuonContainer *muonContainer) { - ATH_MSG_DEBUG( "called EFMissingETFromTrackAndJets::execute()" ); // EFMissingET_Fex_Jets + ATH_MSG_DEBUG( "called EFMissingETFromTrackAndJets::execute()" ); // EFMissingET_Fex_Jets - if(m_timersvc) - m_glob_timer->start(); // total time + if(m_timersvc) + m_glob_timer->start(); // total time - ATH_MSG_DEBUG( "started MET jet CPU timer" ); + ATH_MSG_DEBUG( "started MET jet CPU timer" ); - TrigEFMissingEtComponent* metComp = metHelper->GetComponent(metHelper->GetElements() - m_methelperposition); // fetch Jet component + TrigEFMissingEtComponent* metComp = metHelper->GetComponent(metHelper->GetElements() - m_methelperposition); // fetch Jet component - if (metComp==0) { - ATH_MSG_ERROR( "cannot fetch Topo. cluster component!" ); - return StatusCode::FAILURE; - } - if(string(metComp->m_name, 0, 3) != "JET") { - ATH_MSG_ERROR( "fetched " << metComp->m_name << " instead of the Jet component!" ); - return StatusCode::FAILURE; - } + if (metComp==0) { + ATH_MSG_ERROR( "cannot fetch Topo. cluster component!" ); + return StatusCode::FAILURE; + } + if(string(metComp->m_name, 0, 3) != "JET") { + ATH_MSG_ERROR( "fetched " << metComp->m_name << " instead of the Jet component!" ); + return StatusCode::FAILURE; + } - std::vector<const xAOD::Jet*> MHTJetsVec(MHTJetContainer->begin(), MHTJetContainer->end()); - ATH_MSG_DEBUG( "num of jets: " << MHTJetsVec.size() ); + std::vector<const xAOD::Jet*> MHTJetsVec(MHTJetContainer->begin(), MHTJetContainer->end()); + ATH_MSG_DEBUG( "num of jets: " << MHTJetsVec.size() ); - std::vector<const xAOD::TrackParticle*> TrackVec(trackContainer->begin(), trackContainer->end()); - ATH_MSG_DEBUG( "num of tracks: " << TrackVec.size() ); + std::vector<const xAOD::TrackParticle*> TrackVec(trackContainer->begin(), trackContainer->end()); + ATH_MSG_DEBUG( "num of tracks: " << TrackVec.size() ); - std::vector<const xAOD::Vertex*> VertexVec(vertexContainer->begin(), vertexContainer->end()); - ATH_MSG_DEBUG( "num of vertices: " << VertexVec.size() ); + std::vector<const xAOD::Vertex*> VertexVec(vertexContainer->begin(), vertexContainer->end()); + ATH_MSG_DEBUG( "num of vertices: " << VertexVec.size() ); + std::vector<const xAOD::Muon*> MuonVec; + if(muonContainer!=nullptr) { + for (auto muon : *muonContainer) { + MuonVec.push_back(muon); + } + } + ATH_MSG_DEBUG( "num of muons: " << MuonVec.size() ); + + + //################################################################# + std::vector<const xAOD::TrackParticle*> vecOfMuonTrk; + for (const xAOD::Muon* muon : MuonVec) { + const xAOD::Muon::MuonType muontype = muon->muonType(); + // combined or segment tagged muon + if(muontype == xAOD::Muon::MuonType::Combined || muontype == xAOD::Muon::MuonType::SegmentTagged ) { + const xAOD::TrackParticle* idtrk = muon->trackParticle( xAOD::Muon::TrackParticleType::InnerDetectorTrackParticle ); + if(idtrk==0) continue; + if(fabs(muon->pt())<5000) continue; + + ATH_MSG_DEBUG( "Found muon " << "pt = " << muon->pt()/1000. << " eta= " << + muon->eta() << " phi= " << muon->phi() ); + + //check if duplicate muon track + bool find_duplicate(false); + for(std::vector<const xAOD::TrackParticle*>::size_type idx=0; idx<vecOfMuonTrk.size(); idx++) { + float deltaR_ = idtrk->p4().DeltaR(vecOfMuonTrk[idx]->p4()); + if(deltaR_<0.01) { + find_duplicate = true; + break; + } + } + if(find_duplicate) continue; + + vecOfMuonTrk.push_back(idtrk); + } + } - //################################################################# - //bool hasGoodVtx = false; - const xAOD::Vertex* primaryVertex = nullptr; - for (const xAOD::Vertex* vertex : VertexVec) { - ATH_MSG_DEBUG( "\tx: " << vertex->x() << "\ty: " << vertex->y() << "\tz: " << vertex->z() - << "\tntracks: " << vertex->nTrackParticles() - << "\ttype: " << vertex->vertexType() - << "\txAOD::VxType::PriVtx: " << xAOD::VxType::PriVtx ); + //bool hasGoodVtx = false; + const xAOD::Vertex* primaryVertex = nullptr; + for (const xAOD::Vertex* vertex : VertexVec) { - // ntracks is not working now in rel21 - // if ( vertex->nTrackParticles() < 2 ) continue; - if ( vertex->vertexType() == xAOD::VxType::PriVtx ) { - //hasGoodVtx = true; - primaryVertex = vertex; - break; - } + ATH_MSG_DEBUG( "\tx: " << vertex->x() << "\ty: " << vertex->y() << "\tz: " << vertex->z() + << "\tntracks: " << vertex->nTrackParticles() + << "\ttype: " << vertex->vertexType() + << "\txAOD::VxType::PriVtx: " << xAOD::VxType::PriVtx ); - } - - - std::vector<const xAOD::Jet*> goodJets; - goodJets = MHTJetsVec; - std::vector<const xAOD::TrackParticle*> tracksSeparatedWithJets; - - - if(primaryVertex) { - - unsigned int n_putracks = 0; - for (const xAOD::TrackParticle* itrk : TrackVec) { - const xAOD::Vertex* foundVertex { nullptr }; - for (const auto& vx : *vertexContainer) - { - for (const auto& tpLink : vx->trackParticleLinks()) - { - if (*tpLink == itrk) - { - foundVertex = vx; - break; - } - } - if (foundVertex) break; - } - bool isfromPV = ((!foundVertex && fabs((itrk->z0()+itrk->vz()-primaryVertex->z())*sin(itrk->theta()))<3.) || foundVertex==primaryVertex); - if(!isfromPV && itrk->pt()<30e3 && m_trackselTool->accept(*itrk,primaryVertex)) n_putracks++; - } // end for loop over tracks - if (!n_putracks) n_putracks++; - - - - goodJets.clear(); - for (const xAOD::Jet* jet : MHTJetsVec) { - - double ptsum_all = 0; - double ptsum_pv = 0; - double ptsum_pileup = 0; - - for (const xAOD::TrackParticle* itrk : TrackVec) { - - float deltaR_trackj = jet->p4().DeltaR(itrk->p4()); - if(deltaR_trackj>0.4) continue; - - const xAOD::Vertex* foundVertex { nullptr }; - for (const auto& vx : *vertexContainer) - { - for (const auto& tpLink : vx->trackParticleLinks()) - { - if (*tpLink == itrk) - { - foundVertex = vx; - break; - } - } - if (foundVertex) break; - } - - bool accept = (itrk->pt()>500 && m_trackselTool->accept(*itrk, primaryVertex)); - if (accept) ptsum_all += itrk->pt(); - if (accept && ((!foundVertex && fabs((itrk->z0()+itrk->vz()-primaryVertex->z())*sin(itrk->theta()))<3.) || foundVertex==primaryVertex)) ptsum_pv += itrk->pt(); - if (accept && !(!foundVertex && fabs((itrk->z0()+itrk->vz()-primaryVertex->z())*sin(itrk->theta()))<3.)) ptsum_pileup += itrk->pt(); - } - //double JVF = ptsum_all>0 ? ptsum_pv/ptsum_all : -1; - double Rpt = ptsum_pv/jet->pt(); - double corrJVF = ptsum_pv+ptsum_pileup>0 ? ptsum_pv/(ptsum_pv+100*ptsum_pileup/n_putracks) : -1; - double JVT = corrJVF>=0 ? m_jvtLikelihood->Interpolate(corrJVF,std::min(Rpt,1.0)) : -0.1; - - if(jet->pt()<50e3 && jet->pt()>20e3 && fabs(jet->eta())<2.4 && JVT<m_central_jvtcut) continue; - goodJets.push_back(jet); + // ntracks is not working now in rel21 + // if ( vertex->nTrackParticles() < 2 ) continue; + if ( vertex->vertexType() == xAOD::VxType::PriVtx ) { + //hasGoodVtx = true; + primaryVertex = vertex; + break; + } } + std::vector<const xAOD::Jet*> goodJets; + goodJets = MHTJetsVec; + std::vector<const xAOD::TrackParticle*> tracksSeparatedWithJets; - for (const xAOD::TrackParticle* track : TrackVec) { - - const xAOD::Vertex* foundVertex { nullptr }; - for (const auto& vx : *vertexContainer) - { - for (const auto& tpLink : vx->trackParticleLinks()) - { - if (*tpLink == track) - { - foundVertex = vx; - break; - } - } - if (foundVertex) break; - } - //checking the track coming from PV - bool isfromPV = ((!foundVertex && fabs((track->z0()+track->vz()-primaryVertex->z())*sin(track->theta()))<3.) || foundVertex==primaryVertex); - if(!isfromPV) continue; - if(fabs(track->eta())>2.4 || track->pt()/1000. < m_track_ptcut) continue; - if(!m_trackselTool->accept(*track,primaryVertex)) continue; - if(m_muontrackselTool->accept(*track,primaryVertex)) continue; - - ATH_MSG_DEBUG( "\ttrack pt: " << track->pt()/1000. << "\teta: " << track->eta() << "\tphi: " << track->phi() - << "\tvertex: " << foundVertex - << "\tz0: " << track->z0() - << "\tvz: " << track->vz() - << "\ttheta: " << track->theta() - << "\tdZ: " << fabs((track->z0()+track->vz()-primaryVertex->z())*sin(track->theta())) - << "\tisfromPV: " << isfromPV ); - - bool findWithinjets(false); - for (const xAOD::Jet* jet : goodJets) { - if( fabs(jet->eta())<2.4 && jet->pt()/1000. < m_central_ptcut) continue; - float deltaR_trackj = track->p4().DeltaR(jet->p4()); - if(deltaR_trackj<0.4) { - findWithinjets = true; - break; - } - } + if(primaryVertex) { - if(!findWithinjets) { - tracksSeparatedWithJets.push_back(track); - } + unsigned int n_putracks = 0; + for (const xAOD::TrackParticle* itrk : TrackVec) { - } + const xAOD::Vertex* foundVertex { + nullptr + }; + for (const auto& vx : *vertexContainer) { + for (const auto& tpLink : vx->trackParticleLinks()) { + if (*tpLink == itrk) { + foundVertex = vx; + break; + } + } + if (foundVertex) break; + } + bool isfromPV = ((!foundVertex && fabs((itrk->z0()+itrk->vz()-primaryVertex->z())*sin(itrk->theta()))<3.) || foundVertex==primaryVertex); + if(!isfromPV && itrk->pt()<30e3 && m_trackselTool->accept(*itrk,primaryVertex)) n_putracks++; + } // end for loop over tracks + if (!n_putracks) n_putracks++; - } - //################################################################## - //--- fetching the topo. cluster component - float upperlim[4] = {m_etacut,0,5,-m_etacut}; - float lowerlim[4] = {0,-m_etacut,m_etacut,-5}; - for(int i = 0; i < 5; i++) { + goodJets.clear(); + for (const xAOD::Jet* jet : MHTJetsVec) { - metComp = metHelper->GetComponent(metHelper->GetElements() - m_methelperposition + i); // fetch Cluster component + double ptsum_all = 0; + double ptsum_pv = 0; + double ptsum_pileup = 0; - if(i ==0) { - for (const xAOD::TrackParticle* track : tracksSeparatedWithJets) { - metComp->m_ex -= track->p4().Px(); - metComp->m_ey -= track->p4().Py(); - metComp->m_ez -= track->p4().Pz(); - metComp->m_sumEt += track->pt(); - metComp->m_sumE += track->e(); - } - } + for (const xAOD::TrackParticle* itrk : TrackVec) { - for (const xAOD::Jet* aJet : goodJets) { + float deltaR_trackj = jet->p4().DeltaR(itrk->p4()); + if(deltaR_trackj>0.4) continue; - if(i == 0) { + const xAOD::Vertex* foundVertex { + nullptr + }; + for (const auto& vx : *vertexContainer) { + for (const auto& tpLink : vx->trackParticleLinks()) { + if (*tpLink == itrk) { + foundVertex = vx; + break; + } + } + if (foundVertex) break; + } - if( fabs(aJet->eta())<2.4 && aJet->pt()/1000 < m_central_ptcut ) continue; - metComp->m_ex -= aJet->px(); - metComp->m_ey -= aJet->py(); - metComp->m_ez -= aJet->pz(); - metComp->m_sumEt += aJet->pt(); - metComp->m_sumE += aJet->e(); - metComp->m_usedChannels += 1; - metComp->m_sumOfSigns += copysign(1.0, aJet->pt() ); + bool accept = (itrk->pt()>500 && m_trackselTool->accept(*itrk, primaryVertex)); + if (accept) ptsum_all += itrk->pt(); + if (accept && ((!foundVertex && fabs((itrk->z0()+itrk->vz()-primaryVertex->z())*sin(itrk->theta()))<3.) || foundVertex==primaryVertex)) ptsum_pv += itrk->pt(); + if (accept && !((!foundVertex && fabs((itrk->z0()+itrk->vz()-primaryVertex->z())*sin(itrk->theta()))<3.) || foundVertex==primaryVertex)) ptsum_pileup += itrk->pt(); + } + //double JVF = ptsum_all>0 ? ptsum_pv/ptsum_all : -1; + double Rpt = ptsum_pv/jet->pt(); + double corrJVF = ptsum_pv+ptsum_pileup>0 ? ptsum_pv/(ptsum_pv+100*ptsum_pileup/n_putracks) : -1; + double JVT = corrJVF>=0 ? m_jvtLikelihood->Interpolate(corrJVF,std::min(Rpt,1.0)) : -0.1; + + if(jet->pt()<50e3 && jet->pt()>20e3 && fabs(jet->eta())<2.4 && JVT<m_central_jvtcut) continue; + goodJets.push_back(jet); + + } - } else if (i > 0) { - float eta = aJet->eta(); - float ptCut = 0.; - // Set pT cut depending on region - if(i == 1 || i == 2) ptCut = m_central_ptcut; - else ptCut = m_forward_ptcut; - // only sum jets that have a pt above the cut value - if(aJet->pt() < ptCut) continue; + for (const xAOD::TrackParticle* track : TrackVec) { + + + const xAOD::Vertex* foundVertex { + nullptr + }; + for (const auto& vx : *vertexContainer) { + for (const auto& tpLink : vx->trackParticleLinks()) { + if (*tpLink == track) { + foundVertex = vx; + break; + } + } + if (foundVertex) break; + } + + //checking the track coming from PV + bool isfromPV = ((!foundVertex && fabs((track->z0()+track->vz()-primaryVertex->z())*sin(track->theta()))<3.) || foundVertex==primaryVertex); + if(!isfromPV) continue; + if(fabs(track->eta())>2.4 || track->pt()/1000. < m_track_ptcut) continue; + if(!m_trackselTool->accept(*track,primaryVertex)) continue; + + //remove muon tracks + float mindeltaR_trackj(999.); + for (const xAOD::TrackParticle* muontrk: vecOfMuonTrk) { + float deltaR_trackj = track->p4().DeltaR(muontrk->p4()); + if(deltaR_trackj<mindeltaR_trackj) mindeltaR_trackj=deltaR_trackj; + } + if(mindeltaR_trackj<0.1) continue; + + + ATH_MSG_DEBUG( "\ttrack pt: " << track->pt()/1000. << "\teta: " << track->eta() << "\tphi: " << track->phi() + << "\tvertex: " << foundVertex + << "\tz0: " << track->z0() + << "\tvz: " << track->vz() + << "\ttheta: " << track->theta() + << "\tdZ: " << fabs((track->z0()+track->vz()-primaryVertex->z())*sin(track->theta())) + << "\tisfromPV: " << isfromPV ); + + bool findWithinjets(false); + for (const xAOD::Jet* jet : goodJets) { + if( fabs(jet->eta())<2.4 && jet->pt()/1000. < m_central_ptcut) continue; + float deltaR_trackj = track->p4().DeltaR(jet->p4()); + if(deltaR_trackj<0.4) { + findWithinjets = true; + break; + } + } + + if(!findWithinjets) { + tracksSeparatedWithJets.push_back(track); + } - if( eta >= lowerlim[i-1] && eta <= upperlim[i-1]) { - metComp->m_ex -= aJet->px(); - metComp->m_ey -= aJet->py(); - metComp->m_ez -= aJet->pz(); - metComp->m_sumEt += aJet->pt(); - metComp->m_sumE += aJet->e(); - metComp->m_usedChannels += 1; - metComp->m_sumOfSigns += copysign(1.0, aJet->pt() ); } - } + } + //################################################################## + + //--- fetching the topo. cluster component + float upperlim[4] = {m_etacut,0,5,-m_etacut}; + float lowerlim[4] = {0,-m_etacut,m_etacut,-5}; + + for(int i = 0; i < 5; i++) { - } // End loop over all jets + metComp = metHelper->GetComponent(metHelper->GetElements() - m_methelperposition + i); // fetch Cluster component - // move from "processing" to "processed" state - metComp->m_status ^= m_maskProcessing; // switch off bit - metComp->m_status |= m_maskProcessed; // switch on bit + for (const xAOD::TrackParticle* track : tracksSeparatedWithJets) { + metComp->m_ex -= track->p4().Px(); + metComp->m_ey -= track->p4().Py(); + metComp->m_ez -= track->p4().Pz(); + metComp->m_sumEt += track->pt(); + metComp->m_sumE += track->e(); + } + + for (const xAOD::Jet* aJet : goodJets) { + + if( fabs(aJet->eta())<2.4 && aJet->pt()/1000 < m_central_ptcut ) continue; + + if(i == 0) { + metComp->m_ex -= aJet->px(); + metComp->m_ey -= aJet->py(); + metComp->m_ez -= aJet->pz(); + metComp->m_sumEt += aJet->pt(); + metComp->m_sumE += aJet->e(); + metComp->m_usedChannels += 1; + metComp->m_sumOfSigns += copysign(1.0, aJet->pt() ); + } else if (i > 0) { + float eta = aJet->eta(); + if( eta >= lowerlim[i-1] && eta <= upperlim[i-1]) { + metComp->m_ex -= aJet->px(); + metComp->m_ey -= aJet->py(); + metComp->m_ez -= aJet->pz(); + metComp->m_sumEt += aJet->pt(); + metComp->m_sumE += aJet->e(); + metComp->m_usedChannels += 1; + metComp->m_sumOfSigns += copysign(1.0, aJet->pt() ); + } + + } + + } // End loop over all jets + + // move from "processing" to "processed" state + metComp->m_status ^= m_maskProcessing; // switch off bit + metComp->m_status |= m_maskProcessed; // switch on bit - } + } - metComp = metHelper->GetComponent(metHelper->GetElements() - m_methelperposition); // fetch Cluster component + metComp = metHelper->GetComponent(metHelper->GetElements() - m_methelperposition); // fetch Cluster component - ATH_MSG_DEBUG( " calculated MET: " << sqrt((metComp->m_ex)*(metComp->m_ex)+(metComp->m_ey)*(metComp->m_ey)) ); + ATH_MSG_DEBUG( " calculated MET: " << sqrt((metComp->m_ex)*(metComp->m_ex)+(metComp->m_ey)*(metComp->m_ey)) ); - if(m_timersvc) - m_glob_timer->stop(); // total time + if(m_timersvc) + m_glob_timer->stop(); // total time - return StatusCode::SUCCESS; + return StatusCode::SUCCESS; } TH1* EFMissingETFromTrackAndJets::getHistogramFromFile(TString hname, TString fname) { - fname = PathResolverFindCalibFile(fname.Data()); - TFile *file = TFile::Open(fname.Data(), "READ"); + fname = PathResolverFindCalibFile(fname.Data()); + TFile *file = TFile::Open(fname.Data(), "READ"); - if (file == nullptr) { - ATH_MSG_DEBUG( "getHistogramFromFile() : Couldn't open file " << fname.Data() << ", returning nullptr." ); - return nullptr; - } + if (file == nullptr) { + ATH_MSG_DEBUG( "getHistogramFromFile() : Couldn't open file " << fname.Data() << ", returning nullptr." ); + return nullptr; + } - TH1 *temp = (TH1*)file->Get(hname.Data()); + TH1 *temp = (TH1*)file->Get(hname.Data()); - if (temp == nullptr) { - ATH_MSG_DEBUG( "getHistogramFromFile() : Couldn't find histogram " << hname.Data() << " in file " << fname.Data() << ", returning nullptr." ); - return nullptr; - } + if (temp == nullptr) { + ATH_MSG_DEBUG( "getHistogramFromFile() : Couldn't find histogram " << hname.Data() << " in file " << fname.Data() << ", returning nullptr." ); + return nullptr; + } - hname = "cloned_" + hname; - TH1 *hist = (TH1*)temp->Clone(hname.Data()); - hist->SetDirectory(0); - SafeDelete(file); + hname = "cloned_" + hname; + TH1 *hist = (TH1*)temp->Clone(hname.Data()); + hist->SetDirectory(0); + SafeDelete(file); - return hist; + return hist; } diff --git a/Trigger/TrigAlgorithms/TrigEFMissingET/src/components/TrigEFMissingET_entries.cxx b/Trigger/TrigAlgorithms/TrigEFMissingET/src/components/TrigEFMissingET_entries.cxx index 2b2c2a4f3429bdc86aace3ffda34889f1dab8a33..9e636d5423bf1c84500bce954244ff25671d0aa2 100644 --- a/Trigger/TrigAlgorithms/TrigEFMissingET/src/components/TrigEFMissingET_entries.cxx +++ b/Trigger/TrigAlgorithms/TrigEFMissingET/src/components/TrigEFMissingET_entries.cxx @@ -7,6 +7,8 @@ #include "TrigEFMissingET/EFMissingETFromFEBHeader.h" #include "TrigEFMissingET/EFMissingETFromJets.h" #include "TrigEFMissingET/EFMissingETFromTrackAndJets.h" +#include "TrigEFMissingET/EFMissingETFromClustersTracksPUC.h" +#include "TrigEFMissingET/EFMissingETFromTrackAndClusters.h" //#include "TrigEFMissingET/EFMissingETFromLvl1Ppr.h" #include "TrigEFMissingET/EFMissingETFlags.h" #include "TrigEFMissingET/EFMissingETFromHelper.h" @@ -22,6 +24,8 @@ DECLARE_COMPONENT( EFMissingETFromClustersPUC ) DECLARE_COMPONENT( EFMissingETFromFEBHeader ) DECLARE_COMPONENT( EFMissingETFromJets ) DECLARE_COMPONENT( EFMissingETFromTrackAndJets ) +DECLARE_COMPONENT( EFMissingETFromClustersTracksPUC ) +DECLARE_COMPONENT( EFMissingETFromTrackAndClusters ) //DECLARE_COMPONENT( EFMissingETFromLvl1Ppr ) DECLARE_COMPONENT( EFMissingETFlags ) DECLARE_COMPONENT( EFMissingETFromHelper ) diff --git a/Trigger/TrigAlgorithms/TrigEFMissingET/src/components/TrigEFMissingET_load.cxx b/Trigger/TrigAlgorithms/TrigEFMissingET/src/components/TrigEFMissingET_load.cxx new file mode 100644 index 0000000000000000000000000000000000000000..afd56dc41bbf236fa5f17990f0fee9bdf77c05f3 --- /dev/null +++ b/Trigger/TrigAlgorithms/TrigEFMissingET/src/components/TrigEFMissingET_load.cxx @@ -0,0 +1,3 @@ +#include "GaudiKernel/LoadFactoryEntries.h" + +LOAD_FACTORY_ENTRIES(TrigEFMissingET) diff --git a/Trigger/TrigAlgorithms/TrigL2MissingET/src/T2MissingET.cxx b/Trigger/TrigAlgorithms/TrigL2MissingET/src/T2MissingET.cxx index 2b36cae676b228f34a59f5884f173c3fe27274ae..f762d11d3322dd320f46ac7e923f0ab5124b2b26 100755 --- a/Trigger/TrigAlgorithms/TrigL2MissingET/src/T2MissingET.cxx +++ b/Trigger/TrigAlgorithms/TrigL2MissingET/src/T2MissingET.cxx @@ -248,7 +248,7 @@ HLT::ErrorCode T2MissingET::hltExecute(std::vector<std::vector<HLT::TriggerEleme if(msgLvl() <= MSG::DEBUG){ char buff[512]; snprintf(buff,512,"REGTEST: DetMask = 0x%08lu",mask64); - ATH_MSG_DEBUG( buff ); + msg() << MSG::DEBUG << buff << endmsg; } if (!(mask64==0)) { // 0 means present @@ -305,7 +305,9 @@ HLT::ErrorCode T2MissingET::hltExecute(std::vector<std::vector<HLT::TriggerEleme m_met_feature->defineComponents(vs_aux); if (m_met_feature==0) { - ATH_MSG_WARNING( "cannot create the TrigMissingET object!" ); + if(msgLvl() <= MSG::WARNING) + msg() << MSG::ERROR //WARNING + << "cannot create the TrigMissingET object!" << endmsg; return HLT::NO_HLT_RESULT; } @@ -392,14 +394,16 @@ HLT::ErrorCode T2MissingET::hltExecute(std::vector<std::vector<HLT::TriggerEleme ATH_MSG_DEBUG( "Running in seeded mode" ); tes_in0_size=tes_in[0].size(); if (tes_in0_size != 1) { - ATH_MSG_WARNING( "Configuration error: expecting exactly 1 L1 result. Aborting chain" ); + msg() << MSG::ERROR + << "Configuration error: expecting exactly 1 L1 result. Aborting chain" << endmsg; return HLT::ErrorCode(HLT::Action::ABORT_CHAIN, HLT::Reason::BAD_JOB_SETUP); } break; default: - ATH_MSG_WARNING( "Configuration error: tes_in.size() is " << tes_in_size - << " but can only be 1 or 0 in unseeded mode. Aborting chain" ); + msg() << MSG::ERROR + << "Configuration error: tes_in.size() is " << tes_in_size + << " but can only be 1 or 0 in unseeded mode. Aborting chain" << endmsg; return HLT::ErrorCode(HLT::Action::ABORT_CHAIN, HLT::Reason::BAD_JOB_SETUP); } @@ -411,8 +415,8 @@ HLT::ErrorCode T2MissingET::hltExecute(std::vector<std::vector<HLT::TriggerEleme HLT::ErrorCode status = getFeatures(tes_in[0][0], vectorOfEnergyRoI); if(status == HLT::OK) { if ( vectorOfEnergyRoI.size() < 1 ) { - ATH_MSG_WARNING( "Cannot find L1 result!" ); - return HLT::NAV_ERROR; + msg() << MSG::ERROR << "Cannot find L1 result! Aborting" << endmsg; + return HLT::ErrorCode(HLT::Action::ABORT_CHAIN, HLT::Reason::MISSING_FEATURE); } else if ( vectorOfEnergyRoI.size() > 1 ) { ATH_MSG_WARNING( "found " << vectorOfEnergyRoI.size() @@ -420,8 +424,9 @@ HLT::ErrorCode T2MissingET::hltExecute(std::vector<std::vector<HLT::TriggerEleme } lvl1_energyRoi = vectorOfEnergyRoI.front(); } else { - ATH_MSG_WARNING( "RecEnergyRoI feature not found. Aborting" ); - return HLT::NAV_ERROR; + msg() << MSG::ERROR + << "RecEnergyRoI feature not found. Aborting" << endmsg; + return HLT::ErrorCode(HLT::Action::ABORT_CHAIN, HLT::Reason::MISSING_FEATURE); } } else { // unseeded mode: get all RoIs and look for the good one HLT::Navigation* nav = config()->getNavigation(); @@ -433,8 +438,9 @@ HLT::ErrorCode T2MissingET::hltExecute(std::vector<std::vector<HLT::TriggerEleme } } if(!lvl1_energyRoi) { - ATH_MSG_WARNING( "No RecEnergyRoI object found! Aborting" ); - return HLT::NAV_ERROR; + msg() << MSG::ERROR + << "No RecEnergyRoI object found! Aborting" << endmsg; + return HLT::ErrorCode(HLT::Action::ABORT_CHAIN, HLT::Reason::MISSING_FEATURE); } } diff --git a/Trigger/TrigAlgorithms/TrigMissingETMuon/src/TrigMissingETMuon.cxx b/Trigger/TrigAlgorithms/TrigMissingETMuon/src/TrigMissingETMuon.cxx index 35290b59b58ca30fd94ab96efd8c12f0dbcca197..8d2fd60d94b420c5f0bc941ffe0e0ca363f9109c 100755 --- a/Trigger/TrigAlgorithms/TrigMissingETMuon/src/TrigMissingETMuon.cxx +++ b/Trigger/TrigAlgorithms/TrigMissingETMuon/src/TrigMissingETMuon.cxx @@ -352,7 +352,7 @@ HLT::ErrorCode TrigMissingETMuon::hltExecute(std::vector<std::vector<HLT::Trigge unsigned int muonComp = m_met->getNumberOfComponents() - 1; // Suggested by Diego: Checking the component name of the input if( (m_met->nameOfComponent(muonComp)).substr(0,4)!="Muon") { - msg() << MSG::ERROR << "Could not find MET container with muon information!!! Exit..." <<endmsg; + msg() << MSG::ERROR << "Could not find MET container with muon information!!! Exit..." << endmsg; return HLT::ErrorCode(HLT::Action::ABORT_CHAIN, HLT::Reason::BAD_JOB_SETUP); } // Fetch Muon Components diff --git a/Trigger/TrigAlgorithms/TrigT2CaloCommon/share/CaloCellMasking.py b/Trigger/TrigAlgorithms/TrigT2CaloCommon/share/CaloCellMasking.py index 851df02f02569c9b90660c366fbf6d9ce565c470..d39f9c882dafe648b6ee48fbe6abc9a310f03b1b 100644 --- a/Trigger/TrigAlgorithms/TrigT2CaloCommon/share/CaloCellMasking.py +++ b/Trigger/TrigAlgorithms/TrigT2CaloCommon/share/CaloCellMasking.py @@ -1,9 +1,9 @@ include.block("TrigT2CaloCommon/CaloCellMasking.py") from AthenaCommon.AppMgr import ToolSvc #if not already imported -from LArBadChannelTool.LArBadChannelToolConf import LArBadChanTool, LArBadChannelMasker +from LArBadChannelTool.LArBadChannelToolConf import LArBadChanLegacyTool, LArBadChannelMasker -ToolSvc+=LArBadChanTool("MyBadChanTool") +ToolSvc+=LArBadChanLegacyTool("MyBadChanTool") ToolSvc.MyBadChanTool.ReadFromASCII=False #Not necessary if you have already produced a database file ToolSvc.MyBadChanTool.ComplementaryCoolFolder="/LAR/BadChannels/BadChannelsOnl" #ToolSvc.MyBadChanTool.OutputLevel=VERBOSE diff --git a/Trigger/TrigHypothesis/TrigCaloHypo/python/TrigCaloHypoConfig.py b/Trigger/TrigHypothesis/TrigCaloHypo/python/TrigCaloHypoConfig.py index 0f06f58d6e0aae4b921ec7b14d21205e2d1e99fa..0ac521f5e366dd151287d2141d727181aad249d0 100644 --- a/Trigger/TrigHypothesis/TrigCaloHypo/python/TrigCaloHypoConfig.py +++ b/Trigger/TrigHypothesis/TrigCaloHypo/python/TrigCaloHypoConfig.py @@ -4,7 +4,7 @@ from AthenaCommon.SystemOfUnits import GeV from TrigCaloHypo.TrigCaloHypoConf import TrigEFCaloHypoNoise from LArCellRec.LArCellRecConf import LArNoisyROTool -from LArBadChannelTool.LArBadChannelToolConf import LArBadChanTool +from LArBadChannelTool.LArBadChannelToolConf import LArBadChanLegacyTool from IOVDbSvc.CondDB import conddb from AthenaCommon.AppMgr import ServiceMgr as svcMgr @@ -20,7 +20,7 @@ class EFCaloHypoNoiseConfig (TrigEFCaloHypoNoise): self.BadFEBCut=3 if 'COMP200' not in conddb.GetInstance() and not conddb.isMC: if not hasattr(svcMgr.ToolSvc, "KnownBADFEBsTool"): - theBadFebTool=LArBadChanTool("KnownBADFEBsTool") + theBadFebTool=LArBadChanLegacyTool("KnownBADFEBsTool") theBadFebTool.CoolMissingFEBsFolder="/LAR/BadChannels/KnownBADFEBs" havefolder=False for fld in conddb.iovdbsvc.Folders: @@ -32,7 +32,7 @@ class EFCaloHypoNoiseConfig (TrigEFCaloHypoNoise): else: theBadFebTool=svcMgr.ToolSvc.KnownBADFEBsTool if not hasattr(svcMgr.ToolSvc, "KnownMNBFEBsTool"): - theMNBFebTool=LArBadChanTool("KnownMNBFEBsTool") + theMNBFebTool=LArBadChanLegacyTool("KnownMNBFEBsTool") theMNBFebTool.CoolMissingFEBsFolder="/LAR/BadChannels/KnownMNBFEBs" havefolder=False for fld in conddb.iovdbsvc.Folders: diff --git a/Trigger/TrigHypothesis/TrigEgammaHypo/TrigEgammaHypo/TrigEFPhotonHypo.h b/Trigger/TrigHypothesis/TrigEgammaHypo/TrigEgammaHypo/TrigEFPhotonHypo.h index 259106a3d2c0ebc1ff973ca1e075fcd902d21f20..95ee566e4643c02d7c13b65f140b35d0cd523b28 100755 --- a/Trigger/TrigHypothesis/TrigEgammaHypo/TrigEgammaHypo/TrigEFPhotonHypo.h +++ b/Trigger/TrigHypothesis/TrigEgammaHypo/TrigEgammaHypo/TrigEFPhotonHypo.h @@ -41,7 +41,6 @@ #include "xAODEgamma/EgammaContainer.h" //RMW Sept 2013 -#include "PATCore/IAthSelectorTool.h" #include "EgammaAnalysisInterfaces/IAsgElectronIsEMSelector.h" #include "EgammaAnalysisInterfaces/IAsgPhotonIsEMSelector.h" diff --git a/Trigger/TrigHypothesis/TrigEgammaHypo/src/TrigEFPhotonHypo.cxx b/Trigger/TrigHypothesis/TrigEgammaHypo/src/TrigEFPhotonHypo.cxx index 4de9552d62a437851a15d12b7d090bb247caa188..e6e2eae4a63a66df31d9eb2f032c458c28549ec0 100755 --- a/Trigger/TrigHypothesis/TrigEgammaHypo/src/TrigEFPhotonHypo.cxx +++ b/Trigger/TrigHypothesis/TrigEgammaHypo/src/TrigEFPhotonHypo.cxx @@ -41,8 +41,6 @@ #include "CLHEP/Units/SystemOfUnits.h" #include "GaudiKernel/ITHistSvc.h" #include <TH1F.h> -//#include "PATCore/IAthSelectorTool.h" -//#include "ElectronPhotonSelectorTools/IAsgElectronIsEMSelector.h" #include "xAODEgamma/Electron.h" #include "xAODEgamma/Photon.h" #include "xAODEgammaCnv/xAODPhotonMonFuncs.h" diff --git a/Trigger/TrigHypothesis/TrigEgammaHypo/src/TrigL2CaloHypoAlgMT.cxx b/Trigger/TrigHypothesis/TrigEgammaHypo/src/TrigL2CaloHypoAlgMT.cxx index 8cb3f52ce4660ea6e3ac32dad993d537a5a0be28..ec01a504f676b9e5440bea5456f6c0961bf6c481 100644 --- a/Trigger/TrigHypothesis/TrigEgammaHypo/src/TrigL2CaloHypoAlgMT.cxx +++ b/Trigger/TrigHypothesis/TrigEgammaHypo/src/TrigL2CaloHypoAlgMT.cxx @@ -11,7 +11,7 @@ using namespace TrigCompositeUtils; TrigL2CaloHypoAlgMT::TrigL2CaloHypoAlgMT( const std::string& name, - ISvcLocator* pSvcLocator ) : + ISvcLocator* pSvcLocator ) : ::HypoBase( name, pSvcLocator ) {} TrigL2CaloHypoAlgMT::~TrigL2CaloHypoAlgMT() {} @@ -32,23 +32,6 @@ StatusCode TrigL2CaloHypoAlgMT::finalize() { return StatusCode::SUCCESS; } - /* -OLD - ITC -> get 1 RoI/TC - loop over views - make one TC per view - get RoIs of view - from RoI input - get clusters of view -from View input - map the roi to a decision - from input decisions - create new decision with one cluster, one roi, one view - -NEW - loop over ITC - get RoI and view of TC - get cluster of that view - create new decision with one cluster, one roi, one view - - */ StatusCode TrigL2CaloHypoAlgMT::execute_r( const EventContext& context ) const { ATH_MSG_DEBUG ( "Executing " << name() << "..." ); @@ -72,15 +55,16 @@ StatusCode TrigL2CaloHypoAlgMT::execute_r( const EventContext& context ) const { // loop over previous decisions size_t counter=0; for ( auto previousDecision: *previousDecisionsHandle ) { - //get RoI - auto roiEL = previousDecision->objectLink<TrigRoiDescriptorCollection>( "initialRoI" ); - ATH_CHECK( roiEL.isValid() ); - const TrigRoiDescriptor* roi = *roiEL; + //get RoI + auto roiELInfo = TrigCompositeUtils::findLink<TrigRoiDescriptorCollection>( previousDecision, "initialRoI" ); + + ATH_CHECK( roiELInfo.isValid() ); + const TrigRoiDescriptor* roi = *(roiELInfo.link); // get View - auto viewEL = previousDecision->objectLink< ViewContainer >( "view" ); - ATH_CHECK( viewEL.isValid() ); - auto clusterHandle = ViewHelper::makeHandle( *viewEL, m_clustersKey, context); + auto viewELInfo = TrigCompositeUtils::findLink< ViewContainer >( previousDecision, "view" ); + ATH_CHECK( viewELInfo.isValid() ); + auto clusterHandle = ViewHelper::makeHandle( *(viewELInfo.link), m_clustersKey, context); ATH_CHECK( clusterHandle.isValid() ); ATH_MSG_DEBUG ( "Cluster handle size: " << clusterHandle->size() << "..." ); @@ -90,16 +74,16 @@ StatusCode TrigL2CaloHypoAlgMT::execute_r( const EventContext& context ) const { toolInput.emplace_back( d, roi, clusterHandle.cptr()->at(0), previousDecision ); - { - auto el = ViewHelper::makeLink( *viewEL, clusterHandle, 0 ); + { + auto el = ViewHelper::makeLink( *(viewELInfo.link), clusterHandle, 0 ); ATH_CHECK( el.isValid() ); d->setObjectLink( "feature", el ); } - d->setObjectLink( "roi", roiEL ); - d->setObjectLink( "view", viewEL ); - TrigCompositeUtils::linkToPrevious( d, decisionInput().key(), counter ); - ATH_MSG_DEBUG( "Added view, roi, cluster, previous decision to new decision " << counter << " for view " << (*viewEL)->name() ); - counter++; + d->setObjectLink( "roi", roiELInfo.link ); + + TrigCompositeUtils::linkToPrevious( d, decisionInput().key(), counter ); + ATH_MSG_DEBUG( "Added view, roi, cluster, previous decision to new decision " << counter << " for view " << (*viewELInfo.link)->name() ); + counter++; } diff --git a/Trigger/TrigHypothesis/TrigEgammaHypo/src/TrigL2ElectronHypoAlgMT.cxx b/Trigger/TrigHypothesis/TrigEgammaHypo/src/TrigL2ElectronHypoAlgMT.cxx index 469cf31e596ec83ebbcd986a0cc6e7393b88605e..f7fdc12e90b75f79bb8a00fd087e3a2371d68a15 100644 --- a/Trigger/TrigHypothesis/TrigEgammaHypo/src/TrigL2ElectronHypoAlgMT.cxx +++ b/Trigger/TrigHypothesis/TrigEgammaHypo/src/TrigL2ElectronHypoAlgMT.cxx @@ -74,18 +74,18 @@ StatusCode TrigL2ElectronHypoAlgMT::execute_r( const EventContext& context ) con for ( auto previousDecision: *previousDecisionsHandle ) { // get View - auto viewEL = previousDecision->objectLink< ViewContainer >( "view" ); - CHECK( viewEL.isValid() ); + auto viewELInfo = TrigCompositeUtils::findLink< ViewContainer >( previousDecision, "view" ); + CHECK( viewELInfo.isValid() ); // get electron from that view: size_t electronCounter = 0; - auto electronsHandle = ViewHelper::makeHandle( *viewEL, m_electronsKey, context ); + auto electronsHandle = ViewHelper::makeHandle( *viewELInfo.link, m_electronsKey, context ); ATH_CHECK( electronsHandle.isValid() ); ATH_MSG_DEBUG ( "electron handle size: " << electronsHandle->size() << "..." ); for ( auto electronIter = electronsHandle->begin(); electronIter != electronsHandle->end(); ++electronIter, electronCounter++ ) { auto d = newDecisionIn( decisions.get() ); - d->setObjectLink( "feature", ViewHelper::makeLink<xAOD::TrigElectronContainer>( *viewEL, electronsHandle, electronCounter ) ); + d->setObjectLink( "feature", ViewHelper::makeLink<xAOD::TrigElectronContainer>( *viewELInfo.link, electronsHandle, electronCounter ) ); auto clusterPtr = (*electronIter)->emCluster(); CHECK( clusterPtr != nullptr ); diff --git a/Trigger/TrigHypothesis/TrigEgammaHypo/src/TrigL2PhotonHypoAlgMT.cxx b/Trigger/TrigHypothesis/TrigEgammaHypo/src/TrigL2PhotonHypoAlgMT.cxx index 31ca7e9b2e4356956224e93108730a68f2a0c9ac..fe26291cb077c79a1a6a5a4b23fd13446f50d53c 100644 --- a/Trigger/TrigHypothesis/TrigEgammaHypo/src/TrigL2PhotonHypoAlgMT.cxx +++ b/Trigger/TrigHypothesis/TrigEgammaHypo/src/TrigL2PhotonHypoAlgMT.cxx @@ -53,16 +53,16 @@ StatusCode TrigL2PhotonHypoAlgMT::execute_r( const EventContext& context ) const std::map<const xAOD::TrigEMCluster*, size_t> clusterToIndexMap; size_t clusterCounter = 0; for ( auto previousDecision : *previousDecisionsHandle){ - ElementLink<xAOD::TrigEMClusterContainer> clusterLink; - recursivelyFindFeature(previousDecision, clusterLink); - if( not clusterLink.isValid() ) { + auto clusterELInfo = TrigCompositeUtils::findLink<xAOD::TrigEMClusterContainer>( previousDecision, "feature" ); + + if( not clusterELInfo.isValid() ) { ATH_MSG_ERROR("Can not obtain the link to Cluster"); ATH_MSG_ERROR( TrigCompositeUtils::dump( previousDecision, [](const xAOD::TrigComposite* tc){ return tc->name() + " " + (tc->object<xAOD::TrigEMCluster>("feature") == 0 ? "has no cluster": "has cluster"); }) ); return StatusCode::FAILURE; } - const xAOD::TrigEMCluster* cluster = *clusterLink; + const xAOD::TrigEMCluster* cluster = *(clusterELInfo.link); clusterToIndexMap.insert( std::make_pair( cluster, clusterCounter ) ); clusterCounter++; } @@ -76,20 +76,21 @@ StatusCode TrigL2PhotonHypoAlgMT::execute_r( const EventContext& context ) const std::vector<TrigL2PhotonHypoTool::PhotonInfo> hypoToolInput; for ( auto previousDecision: *previousDecisionsHandle ) { - - auto viewEL = previousDecision->objectLink< ViewContainer >( "view" ); - ATH_CHECK( viewEL.isValid() ); + //previousDecision->objectLink< ViewContainer >( "view" ); + auto viewELInfo = TrigCompositeUtils::findLink< ViewContainer >( previousDecision, "view" ); + + ATH_CHECK( viewELInfo.isValid() ); // get electron from that view: size_t photonCounter = 0; - auto photonsHandle = ViewHelper::makeHandle( *viewEL, m_photonsKey, context ); + auto photonsHandle = ViewHelper::makeHandle( *viewELInfo.link, m_photonsKey, context ); ATH_CHECK( photonsHandle.isValid() ); ATH_MSG_DEBUG ( "electron handle size: " << photonsHandle->size() << "..." ); for ( auto photonIter = photonsHandle->begin(); photonIter != photonsHandle->end(); ++photonIter, photonCounter++ ) { auto d = newDecisionIn( decisions.get(), name() ); - d->setObjectLink( "feature", ViewHelper::makeLink<xAOD::TrigPhotonContainer>( *viewEL, photonsHandle, photonCounter ) ); + d->setObjectLink( "feature", ViewHelper::makeLink<xAOD::TrigPhotonContainer>( *viewELInfo.link, photonsHandle, photonCounter ) ); auto clusterPtr = (*photonIter)->emCluster(); ATH_CHECK( clusterPtr != nullptr ); @@ -136,16 +137,3 @@ StatusCode TrigL2PhotonHypoAlgMT::execute_r( const EventContext& context ) const } -bool TrigL2PhotonHypoAlgMT::recursivelyFindFeature( const TrigCompositeUtils::Decision* start, ElementLink<xAOD::TrigEMClusterContainer>& clusterlink) const{ - //recursively find in the seeds - if ( start->hasObjectLink( "feature" ) ) { - clusterlink=start->objectLink<xAOD::TrigEMClusterContainer>( "feature" ); - return true; - } - if (TrigCompositeUtils::hasLinkToPrevious(start) ){ - auto thelinkToPrevious =TrigCompositeUtils::linkToPrevious( start); - return recursivelyFindFeature( *thelinkToPrevious, clusterlink); - } - return false; -} - diff --git a/Trigger/TrigHypothesis/TrigEgammaHypo/src/TrigL2PhotonHypoAlgMT.h b/Trigger/TrigHypothesis/TrigEgammaHypo/src/TrigL2PhotonHypoAlgMT.h index d220cd719031e7158871be17402f6eb6912beee2..b0c40fb1f76aabba75e568862942daa5b883a596 100644 --- a/Trigger/TrigHypothesis/TrigEgammaHypo/src/TrigL2PhotonHypoAlgMT.h +++ b/Trigger/TrigHypothesis/TrigEgammaHypo/src/TrigL2PhotonHypoAlgMT.h @@ -44,11 +44,7 @@ class TrigL2PhotonHypoAlgMT : public ::HypoBase Gaudi::Property< bool > m_runInView { this, "RunInView", false , "Set input DH for running in views" }; // internally used to getch from views SG::ReadHandleKey< xAOD::TrigPhotonContainer > m_photonsKey {this, "Photons", "L2PhotonContainer", "Input"}; - - - bool recursivelyFindFeature( const TrigCompositeUtils::Decision* d, ElementLink<xAOD::TrigEMClusterContainer>& clusterlink) const; - }; #endif //> !TRIGEGAMMAHYPO_TRIGL2PHOTONHYPOALGMT_H diff --git a/Trigger/TrigHypothesis/TrigMissingETHypo/TrigMissingETHypo/TrigEFMissingETHypo.h b/Trigger/TrigHypothesis/TrigMissingETHypo/TrigMissingETHypo/TrigEFMissingETHypo.h index accb14726561dadebd59477441ebd430f0b6cf1f..14ca94831b64ab969271ae8dee49ae0b444c8ada 100755 --- a/Trigger/TrigHypothesis/TrigMissingETHypo/TrigMissingETHypo/TrigEFMissingETHypo.h +++ b/Trigger/TrigHypothesis/TrigMissingETHypo/TrigMissingETHypo/TrigEFMissingETHypo.h @@ -62,6 +62,7 @@ class TrigEFMissingETHypo : public HLT::HypoAlgo { */ HLT::ErrorCode hltExecute(const HLT::TriggerElement* outputTE, bool & pass); + private: std::string m_featureLabel; //!< label for the MET feature in the HLT Navigation @@ -110,6 +111,10 @@ class TrigEFMissingETHypo : public HLT::HypoAlgo { bool m_doEMScaleTC; //!< switch on/off the use of EM scale information (in topo. clusters) bool m_doOnlyCalcCentralMET; //!< calculate MET only with central contributions + bool m_doLArH11off; //! LAr H11 off or not + bool m_doLArH12off; //! LAr H12 off or not + bool m_doMETphicut; //! switch on/off MET phi cut for LAr H11/H12 + bool m_monitorMeasuredEnergies; // Heavy Ion Monitoring bool m_doL1L2FEBTest; // L1=L2 vs FEB MET test diff --git a/Trigger/TrigHypothesis/TrigMissingETHypo/python/TrigMissingETHypoConfig.py b/Trigger/TrigHypothesis/TrigMissingETHypo/python/TrigMissingETHypoConfig.py index 3c2473a72af91f8ebcb20e0110073675b9d3bcfd..229085335076d68e238c8943449e01aa0ba440fa 100755 --- a/Trigger/TrigHypothesis/TrigMissingETHypo/python/TrigMissingETHypoConfig.py +++ b/Trigger/TrigHypothesis/TrigMissingETHypo/python/TrigMissingETHypoConfig.py @@ -136,6 +136,15 @@ class EFMetHypoXE (EFMissingETHypoBase): self.SumETCut = 100000000*GeV self.forceAccept=False self.onlineMonitoring(False) + self.doLArH11off=False + self.doLArH12off=False + self.doMETphicut=False + if 'LArH11off' in name: + self.doLArH11off = True + if 'LArH12off' in name: + self.doLArH12off = True + if 'METphi' in name: + self.doMETphicut = True if 'wMu' in name: self.doMuonCorrection = True if 'Mon' in name: @@ -229,13 +238,13 @@ class EFMetHypoTCPSXE (EFMissingETHypoBase): class EFMetHypoJetsXE (EFMissingETHypoBase): __slots__ = [] - def __init__(self, name = "EFMetHypo_mhtxe1000",ef_thr=1000*GeV): + def __init__(self, name = "EFMetHypo_mhtxe1000",ef_thr=1000*GeV, extraCalib = ""): super( EFMetHypoJetsXE, self ).__init__( name ) self.SumETCut=ef_thr self.MissingETCut=ef_thr self.CutType=-2.0 - self.METLabel='TrigEFMissingET_mht' + self.METLabel='TrigEFMissingET_mht{0}'.format(extraCalib) self.doMuonCorrection = False self.SumETCut = 100000000*GeV self.forceAccept=False @@ -275,20 +284,107 @@ class EFMetHypoTrackAndJetsXE (EFMissingETHypoBase): if 'xe30' in name: self.onlineMonitoring(True) +class EFMetHypoFTKTrackAndJetsXE (EFMissingETHypoBase): + __slots__ = [] + def __init__(self, name = "EFMetHypo_trkmhtxe1000",ef_thr=1000*GeV): + super( EFMetHypoFTKTrackAndJetsXE, self ).__init__( name ) + + self.SumETCut=ef_thr + self.MissingETCut=ef_thr + self.CutType=-2.0 + self.METLabel='TrigEFMissingET_trkmhtFTK' + self.doMuonCorrection = False + self.SumETCut = 100000000*GeV + self.forceAccept=False + self.onlineMonitoring(False) + self.doEMScaleTC=False + if 'noFW' in name: + self.doOnlyCalcCentralMET = True + if 'wMu' in name: + self.doMuonCorrection = True + if 'noEF' in name: + self.MissingETCut=-100*GeV + self.SumETCut=-100*GeV + if 'xe30' in name: + self.onlineMonitoring(True) + +class EFMetHypoTrackAndClustersXE (EFMissingETHypoBase): + __slots__ = [] + def __init__(self, name = "EFMetHypo_trktcxe1000",ef_thr=1000*GeV): + super( EFMetHypoTrackAndClustersXE, self ).__init__( name ) + + self.SumETCut=ef_thr + self.MissingETCut=ef_thr + self.CutType=-2.0 + self.METLabel='TrigEFMissingET_trktc' + self.doMuonCorrection = False + self.SumETCut = 100000000*GeV + self.forceAccept=False + self.onlineMonitoring(False) + self.doEMScaleTC=False + if 'noFW' in name: + self.doOnlyCalcCentralMET = True + if 'tclcw' in name: + self.doEMScaleTC = False + if 'wMu' in name: + self.doMuonCorrection = True + if 'noEF' in name: + self.MissingETCut=-100*GeV + self.SumETCut=-100*GeV + if 'xe30' in name: + self.onlineMonitoring(True) + + +class EFMetHypoFTKTrackAndClustersXE (EFMissingETHypoBase): + __slots__ = [] + def __init__(self, name = "EFMetHypo_trktcxe1000",ef_thr=1000*GeV): + super( EFMetHypoFTKTrackAndClustersXE, self ).__init__( name ) + + self.SumETCut=ef_thr + self.MissingETCut=ef_thr + self.CutType=-2.0 + self.METLabel='TrigEFMissingET_trktcFTK' + self.doMuonCorrection = False + self.SumETCut = 100000000*GeV + self.forceAccept=False + self.onlineMonitoring(False) + self.doEMScaleTC=False + if 'noFW' in name: + self.doOnlyCalcCentralMET = True + if 'tclcw' in name: + self.doEMScaleTC = False + if 'wMu' in name: + self.doMuonCorrection = True + if 'noEF' in name: + self.MissingETCut=-100*GeV + self.SumETCut=-100*GeV + if 'xe30' in name: + self.onlineMonitoring(True) + + class EFMetHypoTCPUCXE (EFMissingETHypoBase): __slots__ = [] - def __init__(self, name = "EFMetHypo_tcpucxe1000",ef_thr=1000*GeV): + def __init__(self, name = "EFMetHypo_tcpucxe1000",ef_thr=1000*GeV,labelMET = ""): super( EFMetHypoTCPUCXE, self ).__init__( name ) self.SumETCut=ef_thr self.MissingETCut=ef_thr self.CutType=-2.0 - self.METLabel='TrigEFMissingET_topocl_PUC' + self.METLabel='TrigEFMissingET_topocl_PUC' if 'LAr' not in labelMET else 'TrigEFMissingET_EFMissingET_Fex_topoClustersPUC'+labelMET self.doMuonCorrection = False self.SumETCut = 100000000*GeV self.forceAccept=False self.onlineMonitoring(False) self.doEMScaleTC=True + self.doLArH11off=False + self.doLArH12off=False + self.doMETphicut=False + if 'LArH11off' in name: + self.doLArH11off = True + if 'LArH12off' in name: + self.doLArH12off = True + if 'METphi' in name: + self.doMETphicut = True if 'tchad' in name: self.doEMScaleTC = False if 'tclcw' in name: @@ -303,6 +399,35 @@ class EFMetHypoTCPUCXE (EFMissingETHypoBase): if 'xe30' in name: self.onlineMonitoring(True) +class EFMetHypoTCTrkPUCXE (EFMissingETHypoBase): + __slots__ = [] + def __init__(self, name = "EFMetHypo_tctrkpucxe1000",ef_thr=1000*GeV, extraCalib = ""): + super( EFMetHypoTCTrkPUCXE, self ).__init__( name ) + + self.SumETCut=ef_thr + self.MissingETCut=ef_thr + self.CutType=-2.0 + self.METLabel='TrigEFMissingET_topocltrk_PUC{0}'.format(extraCalib) + self.doMuonCorrection = False + self.SumETCut = 100000000*GeV + self.forceAccept=False + self.onlineMonitoring(False) + self.doEMScaleTC=True + if 'tchad' in name: + self.doEMScaleTC = False + if 'tc' in name and 'lcw' in name: + self.doEMScaleTC = False + if 'tc' in name and 'em' in name: + self.doEMScaleTC = True + if 'wMu' in name: + self.doMuonCorrection = True + if 'noEF' in name: + self.MissingETCut=-100*GeV + self.SumETCut=-100*GeV + if 'xe30' in name: + self.onlineMonitoring(True) + + class L2MetHypoTE (EFMissingETHypoBase): __slots__ = [] def __init__(self, name = "L2MetHypo_te1000",l2_thr=1000*GeV): diff --git a/Trigger/TrigHypothesis/TrigMissingETHypo/src/TrigEFMissingETHypo.cxx b/Trigger/TrigHypothesis/TrigMissingETHypo/src/TrigEFMissingETHypo.cxx index eca647c5b87d5cf18f50082cebed807251c25e2d..cda8f337521e3205ee48e566ad6f9f047ecad809 100755 --- a/Trigger/TrigHypothesis/TrigMissingETHypo/src/TrigEFMissingETHypo.cxx +++ b/Trigger/TrigHypothesis/TrigMissingETHypo/src/TrigEFMissingETHypo.cxx @@ -52,6 +52,12 @@ TrigEFMissingETHypo::TrigEFMissingETHypo(const std::string& name, ISvcLocator* p declareProperty("doL1L2FEBTest", m_doL1L2FEBTest = false, "Use L2=L1 values to Trigger FEB if MET values disagree by more than L1L2FEBTolerance GeV (for FEB only!)" ); declareProperty("L1L2FEBTolerance", m_L1L2FEBTolerance = 100*CLHEP::GeV, "L2=L1 vs FEB tolerance in GeV" ); + declareProperty("doLArH11off", m_doLArH11off = false, "LAr H11 crate is off" ); + declareProperty("doLArH12off", m_doLArH12off = false, "LAr H12 crate is off" ); + declareProperty("doMETphicut", m_doMETphicut = false, "remove event when MET phi in the region of LAr H11 or/both H12"); + + + // xs = MET/[a sqrt(SumET) - b] @@ -206,6 +212,9 @@ HLT::ErrorCode TrigEFMissingETHypo::hltExecute(const HLT::TriggerElement* output HLT::ErrorCode stat = getFeatures(outputTE, vectorMissingET, m_featureLabel); + + + if(stat != HLT::OK) { msg() << MSG::WARNING << " Failed to get vectorMissingETs " << endmsg; if (doTiming() && m_totTime) { @@ -634,6 +643,13 @@ HLT::ErrorCode TrigEFMissingETHypo::hltExecute(const HLT::TriggerElement* output msg() << MSG::WARNING << " WRONG Cut Type. Event will Fail MET Cut " << endmsg; } + + if(m_doMETphicut){ + m_phi = atan2f(Ey, Ex); + if(m_doLArH12off && m_phi > -2.5 && m_phi < -2.0 ) accepted = false; + if(m_doLArH11off && m_phi > -2.0 && m_phi < -1.5 ) accepted = false; + } + if(accepted) { pass = true; m_accepted++; diff --git a/Trigger/TrigMonitoring/TrigMETMonitoring/TrigMETMonitoring/HLTMETMonTool.h b/Trigger/TrigMonitoring/TrigMETMonitoring/TrigMETMonitoring/HLTMETMonTool.h index e1dc244cf2fa58219013834cca0e8a9004af7c8d..4ebd305f44b8b7e22647a934c528ec39eefc9619 100755 --- a/Trigger/TrigMonitoring/TrigMETMonitoring/TrigMETMonitoring/HLTMETMonTool.h +++ b/Trigger/TrigMonitoring/TrigMETMonitoring/TrigMETMonitoring/HLTMETMonTool.h @@ -9,6 +9,8 @@ #include "TrigMissingEtEvent/TrigMissingET.h" #include "MissingETEvent/MissingET.h" +#include "xAODTrigger/JetRoI.h" +#include "xAODTrigger/JetRoIContainer.h" #include "xAODTrigger/EnergySumRoI.h" #include "xAODTrigMissingET/TrigMissingET.h" #include "xAODTrigMissingET/TrigMissingETContainer.h" @@ -21,6 +23,8 @@ #include "xAODEgamma/ElectronContainer.h" #include "xAODEgamma/Electron.h" +#include "TLorentzVector.h" + #include <string> #include <vector> @@ -39,19 +43,35 @@ public: private: - /** methods called by book() */ - //void bookExpertL1Histograms(); - //void bookExpertHLTHistograms(); - void bookExpertEfficHistograms(); + StatusCode fillMETHist(); /** methods to make booking easier */ + void addL1BasicHistograms(); + void addL1JetHistograms(); + void addL1ProfileHistograms(std::map<std::string, int> met_signatures_tolook); + void addL1ProfileShifterHistograms(); + void addL1ProfileExpertHistograms(); + void addHLTBasicHistograms(); + void addHLTProfileHistograms(std::map<std::string, int> met_signatures_tolook); + void addHLTStatusHistograms(); void addHLTCompHistograms(); - void addHLTStatusHistogram(); + void addOffMETHistograms(); void addL1vsHLTHistograms(); void addHLTvsOffHistograms(); void addL1vsOffHistograms(); - - StatusCode fillMETHist(); + void addElMuHistograms(); + // methods to make filling easier + void fillL1BasicHistograms(float l1_mex,float l1_mex_log,float l1_mey,float l1_mey_log,float l1_met,float l1_met_log,float l1_sumet,float l1_sumet_log,float l1_phi,float saturated); + void fillL1JetHistograms(float l1_jet_pt,float l1_jet_eta); + void fillL1ProfileHistograms(float off_met,float pT_mumu,bool METMuonFilled,std::map<std::string, int> met_signatures_tolook); + void fillHLTBasicHistograms(float hlt_ex,float hlt_ex_log,float hlt_ey,float hlt_ey_log,float hlt_ez,float hlt_ez_log,float hlt_met,float hlt_met_log,float hlt_sumet,float hlt_sumet_log,float hlt_sume,float hlt_sume_log,float hlt_phi,float hlt_eta,float hlt_significance); + void fillHLTProfileHistograms(float off_met,std::map<std::string, int> met_signatures_tolook); + void fillHLTProfileShifterHistograms(float off_met); + void fillHLTProfileExpertHistograms(float off_met); + void fillOffMETHistograms(float off_met,float off_ex,float off_ey,float off_sumet,float off_phi); + void fillL1vsHLTHistograms(float l1_met,float l1_sumet,float l1_phi,float l1_mex,float l1_mey,float hlt_met,float hlt_sumet,float hlt_phi,float hlt_ex,float hlt_ey,float saturated); + void fillHLTvsOffHistograms(float hlt_met,float hlt_ex,float hlt_ey,float hlt_sumet,float hlt_phi,float off_met,float off_ex,float off_ey,float off_sumet,float off_phi); + void fillL1vsOffHistograms(float l1_met,float l1_mex,float l1_mey,float l1_sumet,float l1_phi,float off_met,float off_ex,float off_ey,float off_sumet,float off_phi,float saturated); void check_triggers(std::vector<std::string> &m_triggers, std::map<std::string,int> &m_signatures); @@ -70,29 +90,37 @@ private: private: - double m_et_min, m_sumet_min, m_phi_min, m_det_min, m_eff_min; - double m_et_max, m_sumet_max, m_phi_max, m_det_max, m_eff_max; - int m_et_bins, m_sumet_bins, m_phi_bins, m_det_bins, m_eff_bins; + double m_et_min, m_ec_min, m_sumet_min, m_sume_min; + double m_phi_min, m_eta_min, m_det_min, m_eff_min, m_xs_min; + double m_et_max, m_ec_max, m_sumet_max, m_sume_max; + double m_phi_max, m_eta_max, m_det_max, m_eff_max, m_xs_max; + int m_et_bins, m_ec_bins, m_sumet_bins, m_sume_bins; + int m_phi_bins, m_eta_bins, m_det_bins, m_eff_bins, m_xs_bins; std::vector<std::string> m_primary_met; - std::vector<std::string> m_monitoring_met; + std::vector<std::string> m_monitoring_met_shifter; + std::vector<std::string> m_monitoring_met_expert; std::vector<std::string> m_monitoring_alg; + std::vector<std::string> m_monitoring_alg_shifter; + std::vector<std::string> m_monitoring_alg_expert; std::vector<std::string> m_prescaled_met; - std::vector<std::string> m_met_triggers_l1, m_met_triggers_hlt; - std::map<std::string, int> m_l1_met_signatures_tolook; - std::map<std::string, int> m_hlt_met_signatures_tolook; + + std::vector<std::string> m_met_triggers_l1_expert, m_met_triggers_hlt_expert; + std::vector<std::string> m_met_triggers_l1_shifter, m_met_triggers_hlt_shifter; + std::map<std::string, int> m_l1_met_signatures_tolook_shifter; + std::map<std::string, int> m_hlt_met_signatures_tolook_shifter; + std::map<std::string, int> m_l1_met_signatures_tolook_expert; + std::map<std::string, int> m_hlt_met_signatures_tolook_expert; bool m_print_met_trig_stats; bool m_make_expert_histograms; - //bool m_doRecMET; std::string m_mon_path; std::string m_shifter_path; std::string m_expert_path; - //bool m_is_do_trigger_effic; - + std::string m_lvl1_jet_roi_key; std::string m_lvl1_roi_key; std::string m_hlt_cell_met_key; std::string m_hlt_mht_met_key; @@ -117,10 +145,7 @@ private: // for the efficiencies std::string m_denominator_trigger; - //TH1F *h_denominator = 0; - - std::string m_numerator_trigger[4]; // = {"HLT_xe80", "HLT_xe100"}; - //TH1F *trig_eff_num[4] = {0}; + std::string m_numerator_trigger[4]; // for MET significance float m_sigOffset; diff --git a/Trigger/TrigMonitoring/TrigMETMonitoring/python/TrigMETMonitCategory.py b/Trigger/TrigMonitoring/TrigMETMonitoring/python/TrigMETMonitCategory.py index 38bc63e63acdaa40cf2bef55409931f4ace8ddee..5264b20c21f1df28385b0f3842384634256361dd 100644 --- a/Trigger/TrigMonitoring/TrigMETMonitoring/python/TrigMETMonitCategory.py +++ b/Trigger/TrigMonitoring/TrigMETMonitoring/python/TrigMETMonitCategory.py @@ -1,22 +1,46 @@ # Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration # l1 trigger to monitor: -# the first one is the denominator for all efficiencies -met_triggers_l1 = [ - "L1_XE50", - #"L1_XS30", - "L1_XE60", - #"L1_XE70", +met_triggers_l1_shifter = [ + "L1_XE50", + "L1_XE55", ] +met_triggers_l1_expert = [ + "L1_XE60", + ] + # hlt triggers to monitor -# -met_triggers_hlt = [ - ## "HLT_mu30", - "HLT_xe100_pufit_L1XE50", - "HLT_xe110_mht_L1XE50", - "HLT_xe110_pufit_L1XE60", - "HLT_xe120_mht_xe80_L1XE60", +met_triggers_hlt_shifter = [ + "HLT_xe110_pufit_xe65_L1XE50", + "HLT_xe110_pufit_xe70_L1XE50", + "HLT_xe110_pufit_xe65_L1XE55", + "HLT_xe110_pufit_xe65_L1XE60", +] + +met_triggers_hlt_expert = [ + "HLT_xe110_pufit_xe75_L1XE50", + "HLT_xe110_pufit_xe70_L1XE55", + "HLT_xe110_pufit_xe70_L1XE60", + "HLT_xe100_trkmht_FTK_L1XE50", + "HLT_xe110_trkmht_FTK_L1XE55", + "HLT_xe110_trkmht_FTK_L1XE60", +] + + +# Trigger chins in early 2018 + #"HLT_xe100_pufit_xe75_L1XE60", + #"HLT_xe120_pufit_L1XE50", + #"HLT_xe120_pufit_L1XE55", + #"HLT_xe120_pufit_L1XE60", + + +# Trigger chins in 2015-2017 + #"HLT_xe110_pufit_L1XE50", + #"HLT_xe110_pufit_L1XE55", + #"HLT_xe110_pufit_L1XE60", + #"HLT_xe120_mht_xe80_L1XE60", + #"HLT_mu30", #"HLT_xs30", #"HLT_xe70_tc_lcw", #"HLT_xe80_tc_lcw_L1XE50", @@ -32,9 +56,18 @@ met_triggers_hlt = [ #"HLT_xe35_xeNOcut_pueta", #"HLT_xe35_xeNOcut_pufit", #"HLT_xe35_xeNOcut_mht", -] -monitoring_met = met_triggers_l1 + met_triggers_hlt -monitoring_met_pp = met_triggers_l1 + met_triggers_hlt -monitoring_met_cosmic = met_triggers_l1 + met_triggers_hlt + +monitoring_met_shifter = met_triggers_l1_shifter + met_triggers_hlt_shifter +monitoring_met_expert = met_triggers_l1_expert + met_triggers_hlt_expert + +monitoring_met_shifter_pp = met_triggers_l1_shifter + met_triggers_hlt_shifter +monitoring_met_expert_pp = met_triggers_l1_expert + met_triggers_hlt_expert + +monitoring_met_shifter_cosmic = met_triggers_l1_shifter + met_triggers_hlt_shifter +monitoring_met_expert_cosmic = met_triggers_l1_expert + met_triggers_hlt_expert + +monitoring_met = monitoring_met_shifter +monitoring_met_pp = monitoring_met_shifter_pp +monitoring_met_cosmic = monitoring_met_shifter_cosmic diff --git a/Trigger/TrigMonitoring/TrigMETMonitoring/python/TrigMETMonitoringConfig.py b/Trigger/TrigMonitoring/TrigMETMonitoring/python/TrigMETMonitoringConfig.py index 19fe1eccf75ac6664bccef73c2ff280c748b2372..1ab5b1edc6e0a0adb8d88aaed8c358549d91a22b 100644 --- a/Trigger/TrigMonitoring/TrigMETMonitoring/python/TrigMETMonitoringConfig.py +++ b/Trigger/TrigMonitoring/TrigMETMonitoring/python/TrigMETMonitoringConfig.py @@ -58,34 +58,44 @@ bitNames_allHLT= [ ] -met_alt_algorithms = [ +met_alt_algorithms_shifter = [ "mht_lcw", - "mht_em", "tc_lcw", "cell", - #"pueta", - "pufit", + "pufit" +] + +met_alt_algorithms_expert = [ + "mht_em", + "pueta", "trkmht_FS", - "trkmht_FTK", + "trkmht_FTK" +] + +# algorithms in Run1 #"feb", #"fex", -] def HLTMETMonitoringTool(): from TrigMETMonitoring.TrigMETMonitoringConf import HLTMETMonTool from TrigHLTMonitoring.HLTMonTriggerList import hltmonList # access to central tool + print "shifter list " + print hltmonList.monitoring_met_shifter HLTMETMon = HLTMETMonTool(name = 'HLTMETMon', histoPathBase = "/Trigger/HLT", MonPathBase = "/HLT/METMon", comp_names = compNames_all, bit_names = bitNames_allHLT, - monitoring_met = hltmonList.monitoring_met, - monitoring_alg = met_alt_algorithms, + monitoring_met_shifter = hltmonList.monitoring_met_shifter, + monitoring_met_expert = hltmonList.monitoring_met_expert, + monitoring_alg = met_alt_algorithms_shifter, + monitoring_alg_shifter = met_alt_algorithms_shifter, + monitoring_alg_expert = met_alt_algorithms_expert, muon_base = "HLT_mu26", muon_pt_thresh = 18, electron_pt_thresh = 20, - primary_met = [], + primary_met = ["pufit"], prescaled_met = [], ); from AthenaCommon.AppMgr import ToolSvc diff --git a/Trigger/TrigMonitoring/TrigMETMonitoring/share/HLTMETMon_jobOptions.py b/Trigger/TrigMonitoring/TrigMETMonitoring/share/HLTMETMon_jobOptions.py index a52d7ab90324cc88bbcd97aea5209cf538f10241..f35a7e32144f5501ff0977898e0e7ad90e0238bf 100644 --- a/Trigger/TrigMonitoring/TrigMETMonitoring/share/HLTMETMon_jobOptions.py +++ b/Trigger/TrigMonitoring/TrigMETMonitoring/share/HLTMETMon_jobOptions.py @@ -10,45 +10,7 @@ import sys ############## # Input files ############## -#InputFiles = ['/hep300/data-shared/MET/271595/files/data15_13TeV.00271595.physics_Main.merge.AOD.f611_m1463._lb0331._0001.1'] - -#InputFiles = ['/hep300/data/khamano/data16/data16_13TeV.00298967.physics_Main.merge.AOD.f696_m1588/data16_13TeV.00298967.physics_Main.merge.AOD.f696_m1588._lb0157._0006.1'] - -#InputFiles = ['/hep300/data/khamano/data16/data16_13TeV.00298967.physics_EnhancedBias.merge.AOD.r8138_p2645/AOD.08788661._000026.pool.root.1','/hep300/data/khamano/data16/data16_13TeV.00298967.physics_EnhancedBias.merge.AOD.r8138_p2645/AOD.08788661._000309.pool.root.1','/hep300/data/khamano/data16/data16_13TeV.00298967.physics_EnhancedBias.merge.AOD.r8138_p2645/AOD.08788661._000352.pool.root.1','/hep300/data/khamano/data16/data16_13TeV.00298967.physics_EnhancedBias.merge.AOD.r8138_p2645/AOD.08788661._000447.pool.root.1','/hep300/data/khamano/data16/data16_13TeV.00298967.physics_EnhancedBias.merge.AOD.r8138_p2645/AOD.08788661._000476.pool.root.1'] - -InputFiles = ['/hep300/data/khamano/data16/data16_13TeV.00305543.physics_Main.merge.AOD.f729_m1646/data16_13TeV.00305543.physics_Main.merge.AOD.f729_m1646._lb0127._0004.1','/hep300/data/khamano/data16/data16_13TeV.00305543.physics_Main.merge.AOD.f729_m1646/data16_13TeV.00305543.physics_Main.merge.AOD.f729_m1646._lb0405._0003.1','/hep300/data/khamano/data16/data16_13TeV.00305543.physics_Main.merge.AOD.f729_m1646/data16_13TeV.00305543.physics_Main.merge.AOD.f729_m1646._lb0573._0002.1','/hep300/data/khamano/data16/data16_13TeV.00305543.physics_Main.merge.AOD.f729_m1646/data16_13TeV.00305543.physics_Main.merge.AOD.f729_m1646._lb0947._0002.1','/hep300/data/khamano/data16/data16_13TeV.00305543.physics_Main.merge.AOD.f729_m1646/data16_13TeV.00305543.physics_Main.merge.AOD.f729_m1646._lb0989._0001.1'] - - -# xs trigger -#InputFiles = ['/hep300/data/khamano/data15/data15_13TeV.00276952.physics_EnhancedBias.merge.AOD.r7124_p2424_tid06589898_00/AOD.06589898._000130.pool.root.1','/hep300/data/khamano/data15/data15_13TeV.00280500.physics_EnhancedBias.merge.AOD.r7128_p2424_tid06595858_00/AOD.06595858._000083.pool.root.1'] - -#InputFiles = ['/hep300/data/khamano/data15/data15_13TeV.00276952.physics_EnhancedBias.merge.AOD.r7124_p2424_tid06589898_00/AOD.06589898._000130.pool.root.1'] - -#InputFiles = ['/hep300/data-shared/MET/271595/files/data15_13TeV.00271595.physics_Main.merge.AOD.f611_m1463._lb0331._0001.1'] - -#InputFiles = ['/hep300/data-shared/MET/271595/files/data15_13TeV.00271595.physics_Main.merge.AOD.f611_m1463._lb0331._0001.1', '/hep300/data-shared/MET/271595/files/data15_13TeV.00271595.physics_Main.merge.AOD.f611_m1463._lb0342._0007.1', '/hep300/data-shared/MET/271595/files/data15_13TeV.00271595.physics_Main.merge.AOD.f611_m1463._lb0350._0004.1', '/hep300/data-shared/MET/271595/files/data15_13TeV.00271595.physics_Main.merge.AOD.f611_m1463._lb0363._0001.1', '/hep300/data-shared/MET/271595/files/data15_13TeV.00271595.physics_Main.merge.AOD.f611_m1463._lb0373._0004.1'] - -# PeriodA -#InputFiles = ['/hep300/data/khamano/data15/data15_13TeV.00266904.physics_Main.merge.AOD.r6944_p2410_tid06296440_00/AOD.06296440._000566.pool.root.1'] - -# PeriodC -#InputFiles = ['/hep300/data/khamano/data15/data15_13TeV.00270816.physics_Main.merge.AOD.r6943_p2410_tid06297590_00/AOD.06297590._000005.pool.root.1'] - -#InputFiles = ['/hep300/data/khamano/mc15/mc15_13TeV.361100.PowhegPythia8EvtGen_AZNLOCTEQ6L1_Wplusenu.merge.AOD.e3601_s2576_s2132_r6630_r6264_tid05371496_00/AOD.05371496._000392.pool.root.1'] - -#mc15 - -#Wplusenu -#InputFiles = ['/afs/cern.ch/user/y/ychiu/work/MonitoringMay13/test/mc15data/mc15_13TeV.361100.PowhegPythia8EvtGen_AZNLOCTEQ6L1_Wplusenu.merge.AOD.e3601_s2576_s2132_r6630_r6264_tid05367769_00/AOD.05367769._000216.pool.root.1']; - -#Wplusmunu -#InputFiles = ['/afs/cern.ch/user/y/ychiu/work/MonitoringMay13/test/mc15data/mc15_13TeV.361101.PowhegPythia8EvtGen_AZNLOCTEQ6L1_Wplusmunu.merge.AOD.e3601_s2576_s2132_r6630_r6264_tid05371399_00/AOD.05371399._000167.pool.root.1']; - -#minbias -#InputFiles = ['/afs/cern.ch/user/y/ychiu/work/MonitoringMay13/test/mc15data/mc15_13TeV.361203.Pythia8_A2_MSTW2008LO_ND_minbias.merge.AOD.e3639_s2601_s2132_r6630_r6264_tid05405009_00/AOD.05405009._000059.pool.root.1']; - -#ttbar -#InputFiles = ['/afs/cern.ch/user/y/ychiu/work/MonitoringMay13/test/mc15data/mc15_13TeV.410000.PowhegPythiaEvtGen_P2012_ttbar_hdamp172p5_nonallhad.merge.AOD.e3698_s2608_s2183_r6630_r6264_tid05382619_00/AOD.05382619._000139.pool.root.1']; +InputFiles = ['/hep300/data/khamano/data17/data17_13TeV.00339590.physics_Main.merge.AOD.f889_m1831_r9949_r10241_r10242_p3313/AOD.13015916._000011.pool.root.1','/hep300/data/khamano/data17/data17_13TeV.00339590.physics_Main.merge.AOD.f889_m1831_r9949_r10241_r10242_p3313/AOD.13015916._000182.pool.root.1','/hep300/data/khamano/data17/data17_13TeV.00339590.physics_Main.merge.AOD.f889_m1831_r9949_r10241_r10242_p3313/AOD.13015916._000326.pool.root.1','/hep300/data/khamano/data17/data17_13TeV.00339590.physics_Main.merge.AOD.f889_m1831_r9949_r10241_r10242_p3313/AOD.13015916._000341.pool.root.1','/hep300/data/khamano/data17/data17_13TeV.00339590.physics_Main.merge.AOD.f889_m1831_r9949_r10241_r10242_p3313/AOD.13015916._000368.pool.root.1'] @@ -57,6 +19,7 @@ InputFiles = ['/hep300/data/khamano/data16/data16_13TeV.00305543.physics_Main.me ############################ import AthenaPoolCnvSvc.ReadAthenaPool ServiceMgr.EventSelector.InputCollections=InputFiles + ServiceMgr.PoolSvc.AttemptCatalogPatch = True; ServiceMgr.OutputLevel=ERROR @@ -165,9 +128,9 @@ HLTmetMonMan.FileKey = "MonitorHLTmet" print HLTmetMonMan -########################## -# Events to run over -########################## +############################################# +# Events to run over; "-1" for all events. +############################################# theApp.EvtMax = -1 #theApp.EvtMax = 10 diff --git a/Trigger/TrigMonitoring/TrigMETMonitoring/src/HLTMETMonTool.cxx b/Trigger/TrigMonitoring/TrigMETMonitoring/src/HLTMETMonTool.cxx index 9918e96e4836122f8de3a5edf83f7041a7367b6e..685152aadd593a25cfa3dbb6ad3e2fc7d8cf1e03 100755 --- a/Trigger/TrigMonitoring/TrigMETMonitoring/src/HLTMETMonTool.cxx +++ b/Trigger/TrigMonitoring/TrigMETMonitoring/src/HLTMETMonTool.cxx @@ -1,21 +1,24 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration */ #include "TrigMETMonitoring/HLTMETMonTool.h" #include "GaudiKernel/MsgStream.h" #include "StoreGate/StoreGateSvc.h" +#include "GaudiKernel/PropertyMgr.h" #include "GaudiKernel/ToolHandle.h" #include "TrigConfL1Data/TriggerItem.h" #include "TrigMissingEtEvent/TrigMissingETContainer.h" #include "CLHEP/Units/SystemOfUnits.h" +#include "xAODEventInfo/EventInfo.h" #include <iostream> #include <iomanip> #include <cmath> #include <functional> +#include "TLorentzVector.h" #include "TH1.h" #include "TH2.h" #include "TH1F.h" @@ -36,10 +39,16 @@ HLTMETMonTool::HLTMETMonTool(const std::string & type, const std::string & name, // Triggers to monitor declareProperty("primary_met", m_primary_met); - declareProperty("monitoring_met", m_monitoring_met); + declareProperty("monitoring_met_shifter", m_monitoring_met_shifter); + declareProperty("monitoring_met_expert", m_monitoring_met_expert); declareProperty("monitoring_alg", m_monitoring_alg); + declareProperty("monitoring_alg_shifter", m_monitoring_alg_shifter); + declareProperty("monitoring_alg_expert", m_monitoring_alg_expert); declareProperty("prescaled_met", m_prescaled_met); + // Jet keys + declareProperty("l1_jet_key", m_lvl1_jet_roi_key="LVL1JetRoIs"); + // Met keys declareProperty("l1_key", m_lvl1_roi_key="LVL1EnergySumRoI"); declareProperty("hlt_cell_key", m_hlt_cell_met_key="HLT_xAOD__TrigMissingETContainer_TrigEFMissingET"); @@ -64,31 +73,49 @@ HLTMETMonTool::HLTMETMonTool(const std::string & type, const std::string & name, declareProperty("electron_base", m_electron_base_trigger="HLT_e5_lhloose"); declareProperty("electron_pt_thresh", m_electron_pt_thresh=20.0); + // declareProperty("comp_names", m_compNames); declareProperty("bit_names", m_bitNames); // histograms limits // et - declareProperty("et_min", m_et_min=-13.5, "Minimum Et"); - declareProperty("et_max", m_et_max=601.5, "Maximum Et"); declareProperty("et_bins", m_et_bins=205, "Number of bins Et"); + declareProperty("et_min", m_et_min=-13.5, "Minimum Et"); + declareProperty("et_max", m_et_max=401.5, "Maximum Et"); + // Ex, Ey, Ez + declareProperty("ec_bins", m_ec_bins=199, "Number of bins Ex, Ey, Ez"); + declareProperty("ec_min", m_ec_min=-298.5, "Minimum Ex, Ey, Ez"); + declareProperty("ec_max", m_ec_max=298.5, "Maximum Ex, Ey, Ez"); // sumet - declareProperty("sumet_min", m_sumet_min=-27., "Minimum Sumet"); - declareProperty("sumet_max", m_sumet_max=1803., "Maximum Sumet"); - declareProperty("sumet_bins", m_sumet_bins=305, "Number of bins Sumet"); + declareProperty("sumet_bins", m_sumet_bins=305, "Number of bins SumEt"); + declareProperty("sumet_min", m_sumet_min=-27., "Minimum SumEt"); + declareProperty("sumet_max", m_sumet_max=4203., "Maximum SumEt"); + // sume + declareProperty("sume_bins", m_sume_bins=153, "Number of bins SumE"); + declareProperty("sume_min", m_sume_min=-27., "Minimum SumE"); + declareProperty("sume_max", m_sume_max=24003., "Maximum SumE"); // phi, dphi + declareProperty("phi_bins", m_phi_bins=32, "Number of bins Phi, dPhi"); declareProperty("phi_min", m_phi_min=-3.1416, "Minimum Phi"); declareProperty("phi_max", m_phi_max=3.1416, "Maximum Phi"); - declareProperty("phi_bins", m_phi_bins=32, "Number of bins Phi, dPhi"); + // eta + declareProperty("eta_bins", m_eta_bins=24, "Number of bins Eta"); + declareProperty("eta_min", m_eta_min=-4.8, "Minimum Eta"); + declareProperty("eta_max", m_eta_max=4.8, "Maximum Eta"); // dEt, dEx, dEy + declareProperty("det_bins", m_det_bins=100, "Number of bins dEt, dEx, dEy"); declareProperty("det_min", m_det_min=-100., "Minimum dEt, dEx, dEy"); declareProperty("det_max", m_det_max=100., "Maximum dEt, dEx, dEy"); - declareProperty("det_bins", m_det_bins=100, "Number of bins dEt, dEx, dEy"); // efficiency + declareProperty("eff_bins", m_eff_bins=42, "Number of bins Eff"); declareProperty("eff_min", m_eff_min=-13.5, "Minimum Eff"); declareProperty("eff_max", m_eff_max=406.5, "Maximum Eff"); - declareProperty("eff_bins", m_eff_bins=42, "Number of bins Eff"); - // significance + // xs + declareProperty("xs_bins", m_xs_bins=40, "Number of bins Xs"); + declareProperty("xs_min", m_xs_min=-0.025, "Minimum Xs"); + declareProperty("xs_max", m_xs_max=20.025, "Maximum Xs"); + + // significance parameters declareProperty("sig_offset", m_sigOffset=4.93182 , "Resolution offset"); declareProperty("sig_slope", m_sigSlope=0.442864 , "Resolution slope"); declareProperty("sig_quadr", m_sigQuadr=0.0 , "Resolution quad term"); @@ -104,21 +131,36 @@ HLTMETMonTool::~HLTMETMonTool() { } +class High2LowByPt { +public: + bool operator () (const TLorentzVector &a, const TLorentzVector &b) const { + return (a.Perp()>b.Perp()); + } +}; + //___________________________________________________________________________________________________________ StatusCode HLTMETMonTool::init() { ATH_MSG_DEBUG("in HLTMETMonTool::init()"); ATH_MSG_DEBUG("HLTMETMonTool: L1Key = " << m_lvl1_roi_key); - ATH_MSG_DEBUG("HLTMETMonTool: HLT_METKey = " << m_hlt_cell_met_key); + ATH_MSG_DEBUG("HLTMETMonTool: HLT_METKey = " << m_primary_met[0]); ATH_MSG_DEBUG("HLTMETMonTool: Off_METKey = " << m_off_met_key); - // put all trigger names into one arry - for (std::vector<std::string>::iterator it = m_monitoring_met.begin(); it != m_monitoring_met.end(); ++it) { + // put all trigger names into one array for shifter + for (std::vector<std::string>::iterator it = m_monitoring_met_shifter.begin(); it != m_monitoring_met_shifter.end(); ++it) { if (get_trigger_level(*it) == "L1") - m_met_triggers_l1.push_back(*it); + m_met_triggers_l1_shifter.push_back(*it); else if (get_trigger_level(*it) == "HLT") - m_met_triggers_hlt.push_back(*it); + m_met_triggers_hlt_shifter.push_back(*it); } + //put all trigger names into one array for expert + for (std::vector<std::string>::iterator it = m_monitoring_met_expert.begin(); it != m_monitoring_met_expert.end(); ++it) { + if (get_trigger_level(*it) == "L1") + m_met_triggers_l1_expert.push_back(*it); + else if (get_trigger_level(*it) == "HLT") + m_met_triggers_hlt_expert.push_back(*it); + } + return StatusCode::SUCCESS; @@ -129,13 +171,22 @@ StatusCode HLTMETMonTool::init() { StatusCode HLTMETMonTool::book() { ATH_MSG_DEBUG("in HLTMETMonTool::book()"); - + // check if input met triggers are in trigger configuration and add them to signatures_to look vectors - if (m_met_triggers_l1.size()) - check_triggers(m_met_triggers_l1, m_l1_met_signatures_tolook); - if (m_met_triggers_hlt.size()) - check_triggers(m_met_triggers_hlt, m_hlt_met_signatures_tolook); + if (m_met_triggers_l1_shifter.size()) + check_triggers(m_met_triggers_l1_shifter, m_l1_met_signatures_tolook_shifter); + if (m_met_triggers_hlt_shifter.size()) + check_triggers(m_met_triggers_hlt_shifter, m_hlt_met_signatures_tolook_shifter); + //Do the same for expert + if (m_met_triggers_l1_expert.size()) + check_triggers(m_met_triggers_l1_expert, m_l1_met_signatures_tolook_expert); + if (m_met_triggers_hlt_expert.size()) + check_triggers(m_met_triggers_hlt_expert, m_hlt_met_signatures_tolook_expert);// + // declare iterator etc. + std::map<std::string,int>::const_iterator it; + std::map<std::string, int> met_signatures_tolook; + // Create Shifter and Expert folders m_shifter_path = m_mon_path + "/Shifter"; m_expert_path = m_mon_path + "/Expert"; @@ -143,125 +194,81 @@ StatusCode HLTMETMonTool::book() { addMonGroup(new MonGroup(this, m_shifter_path, run)); addMonGroup(new MonGroup(this, m_expert_path, run)); - //############################ - //-- Book "Shifter" histograms - //############################ - //********************** - // Shifter L1 histograms - //********************** - std::string mongroupName = m_shifter_path + "/L1"; - addMonGroup(new MonGroup(this, mongroupName.c_str(), run)); - setCurrentMonGroup(mongroupName); - - addHistogram(new TH1F("L1_METx", "L1 Missing E_{x};E_{x} (GeV)", 199, -298.5, 298.5)); - addHistogram(new TH1F("L1_METy", "L1 Missing E_{y};E_{y} (GeV)", 199, -298.5, 298.5)); - addHistogram(new TH1F("L1_MET", "L1 MET (GeV);MET (GeV)", m_et_bins, m_et_min, m_et_max)); - addHistogram(new TH1F("L1_SumEt", "L1 SumEt (GeV);SumEt (GeV)", m_sumet_bins, m_sumet_min, m_sumet_max)); - addHistogram(new TH1F("L1_MET_phi", "L1 MET #phi (rad);MET #phi (rad)", m_phi_bins, m_phi_min, m_phi_max)); - addHistogram(new TH1F("L1_MET_phi_etweight", "L1 MET #phi (|Missing E_{T}|);MET #phi (rad)", m_phi_bins, m_phi_min, m_phi_max)); - addHistogram(new TH1F("L1_MET_log", "L1 |Missing E_{T}|;log_{10}(ME_{T}/GeV)", 40, -1.875, 4.125)); - addHistogram(new TH1F("L1_SumEt_log", "L1 Sum |E_{T}|;log_{10}(SumE_{T}/GeV)", 40, -1.875, 4.125)); - + std::string monGroupName = ""; //L1 or HLT + std::string monFolderName = ""; //Primary, Efficiecny, mht, trigger name etc. - std::map<std::string,int>::const_iterator it; - /// Efficiencies for the L1 triggers - for (it = m_l1_met_signatures_tolook.begin(); it != m_l1_met_signatures_tolook.end(); it++) { - std::string prof_name = "Eff_" + it->first; - std::string prof_title = prof_name + " Efficiency Missing E_{T};ME_{T} (GeV)"; - addProfile(new TProfile(prof_name.c_str(), prof_title.c_str(), m_eff_bins, m_eff_min, m_eff_max)); - } + // Book Shifter L1 histograms ***** + monGroupName = m_shifter_path + "/L1"; + addMonGroup(new MonGroup(this, monGroupName.c_str(), run)); + // Basic L1 histograms + monFolderName = monGroupName + "/Primary"; + addMonGroup(new MonGroup(this, monFolderName, run)); + setCurrentMonGroup(monFolderName); + addL1BasicHistograms(); + + // Efficiencies Shifter L1 histograms + monFolderName = monGroupName + "/Efficiency"; + addMonGroup(new MonGroup(this, monFolderName, run)); + setCurrentMonGroup(monFolderName); + met_signatures_tolook = m_l1_met_signatures_tolook_shifter; + addL1ProfileHistograms(met_signatures_tolook); - //*********************** - // Shifter HLT histograms - //*********************** - mongroupName = m_shifter_path + "/HLT"; - addMonGroup(new MonGroup(this, mongroupName.c_str(), run)); - setCurrentMonGroup(mongroupName); - - addHistogram(new TH1F("HLT_MEx", "HLT Missing E_{x};E_{x} (GeV)", 199, -298.5, 298.5)); - addHistogram(new TH1F("HLT_MEy", "HLT Missing E_{y};E_{y} (GeV)", 199, -298.5, 298.5)); - addHistogram(new TH1F("HLT_MET", "HLT |Missing E_{T}|;ME_{T} (GeV)", m_et_bins, m_et_min, m_et_max)); - addHistogram(new TH1F("HLT_SumEt", "HLT Sum |E_{T}|;SumE_{T} (GeV)", m_sumet_bins, m_sumet_min, m_sumet_max)); - addHistogram(new TH1F("HLT_MET_phi", "HLT MET #phi (rad);#phi (rad)", m_phi_bins, m_phi_min, m_phi_max)); - addHistogram(new TH1F("HLT_MET_phi_etweight", "HLT MET #phi (|Missing E_{T}|);MET #phi (rad)", m_phi_bins, m_phi_min, m_phi_max)); - addHistogram(new TH1F("HLT_MET_log", "HLT |Missing E_{T}|;log_{10}(ME_{T}/GeV)", 20, -1.875, 4.125)); - addHistogram(new TH1F("HLT_SumEt_log", "HLT Sum |E_{T}|;log_{10}(SumE_{T}/GeV)", 20, -1.875, 4.125)); - addHistogram(new TH1F("HLT_MEz", "HLT Missing E_{z};E_{z} (GeV)", 100, -298.5,298.5)); - addHistogram(new TH1F("HLT_SumE", "HLT Sum |E|;SumE (GeV)", 153, -27., 18003.)); - addHistogram(new TH2F("HLT_MET_etaphi", "HLT MET #eta/#phi;#eta;#phi (rad)", 24, -4.8, 4.8, m_phi_bins, m_phi_min, m_phi_max)); - addHistogram(new TH2F("HLT_MET_etaphi_etweight", "HLT MET #eta/#phi(|Missing E_{T}|);#eta;#phi (rad)", 24, -4.8, 4.8, m_phi_bins, m_phi_min, m_phi_max)); - /// Efficiencies for the HLT triggers - for (it = m_hlt_met_signatures_tolook.begin(); it != m_hlt_met_signatures_tolook.end(); it++) { - std::string prof_name = "Eff_" + it->first; - std::string prof_title = prof_name + " Efficiency Missing E_{T};ME_{T} (GeV)"; - addProfile(new TProfile(prof_name.c_str(), prof_title.c_str(), m_eff_bins, m_eff_min, m_eff_max)); - } - // Signal like electron and muon efficiency - for (it = m_hlt_met_signatures_tolook.begin(); it != m_hlt_met_signatures_tolook.end(); it++) { - std::string name = it->first; - std::string mu_profname = "Eff_mu_"+name; - std::string mu_prof_title = mu_profname + " Efficiency Missing E_{T};ME_{T} (GeV) (Wmunu-like events)"; - addProfile(new TProfile(mu_profname.c_str(), mu_prof_title.c_str(), m_eff_bins, m_eff_min, m_eff_max)); - std::string el_profname = "Eff_el_"+name; - std::string el_prof_title = el_profname + " Efficiency Missing E_{T};ME_{T} (GeV) (Wenu-like events)"; - addProfile(new TProfile(el_profname.c_str(), el_prof_title.c_str(), m_eff_bins, m_eff_min, m_eff_max)); - } + // Book Shifter HLT histograms ***** + monGroupName = m_shifter_path + "/HLT"; + addMonGroup(new MonGroup(this, monGroupName.c_str(), run)); - // muon histograms - addHistogram(new TH1F("HLT_MEx_mu", "HLT Missing E_{x};E_{x} Signal-like #mu (GeV)", 199, -298.5, 298.5)); - addHistogram(new TH1F("HLT_MEy_mu", "HLT Missing E_{y};E_{y} Signal-like #mu (GeV)", 199, -298.5, 298.5)); - addHistogram(new TH1F("HLT_MET_mu", "HLT |Missing E_{T}|;ME_{T} Signal-like #mu (GeV)", m_et_bins, m_et_min, m_et_max)); - addHistogram(new TH1F("HLT_SumEt_mu", "HLT Sum |E_{T}|;SumE_{T} Signal-like #mu (GeV)", m_sumet_bins, m_sumet_min, m_sumet_max)); - addHistogram(new TH1F("HLT_MET_phi_mu", "HLT MET #phi (rad);#phi (rad) Signal-like #mu", m_phi_bins, m_phi_min, m_phi_max)); - addHistogram(new TH1F("HLT_MET_phi_etweight_mu", "HLT MET #phi (|Missing E_{T}|);MET #phi (rad) Signal-like #mu", m_phi_bins, m_phi_min, m_phi_max)); - addHistogram(new TH1F("HLT_MET_log_mu", "HLT |Missing E_{T}|;log_{10}(ME_{T}/GeV) Signal-like #mu", 20, -1.875, 4.125)); - addHistogram(new TH1F("HLT_SumEt_log_mu", "HLT Sum |E_{T}|;log_{10}(SumE_{T}/GeV) Signal-like #mu", 20, -1.875, 4.125)); - addHistogram(new TH1F("HLT_MEz_mu", "HLT Missing E_{z};E_{z} (GeV) Signal-like #mu", 100, -298.5,298.5)); - addHistogram(new TH1F("HLT_SumE_mu", "HLT Sum |E|;SumE (GeV) Signal-like #mu", 153, -27., 18003.)); - //addHistogram(new TH2F("HLT_MET_etaphi_etweight_mu", "HLT MET #eta/#phi(|Missing E_{T}|);#eta;#phi (rad) Signal-like #mu", 24, -4.8, 4.8, m_phi_bins, m_phi_min, m_phi_max)); - // electron hsistograms - addHistogram(new TH1F("HLT_MEx_e", "HLT Missing E_{x};E_{x} Signal-like e (GeV)", 199, -298.5, 298.5)); - addHistogram(new TH1F("HLT_MEy_e", "HLT Missing E_{y};E_{y} Signal-like e (GeV)", 199, -298.5, 298.5)); - addHistogram(new TH1F("HLT_MET_e", "HLT |Missing E_{T}|;ME_{T} Signal-like e (GeV)", m_et_bins, m_et_min, m_et_max)); - addHistogram(new TH1F("HLT_SumEt_e", "HLT Sum |E_{T}|;SumE_{T} Signal-like e (GeV)", m_sumet_bins, m_sumet_min, m_sumet_max)); - addHistogram(new TH1F("HLT_MET_phi_e", "HLT MET #phi (rad);#phi (rad) Signal-like e", m_phi_bins, m_phi_min, m_phi_max)); - addHistogram(new TH1F("HLT_MET_phi_etweight_e", "HLT MET #phi (|Missing E_{T}|);MET #phi (rad) Signal-like e", m_phi_bins, m_phi_min, m_phi_max)); - addHistogram(new TH1F("HLT_MET_log_e", "HLT |Missing E_{T}|;log_{10}(ME_{T}/GeV) Signal-like e", 20, -1.875, 4.125)); - addHistogram(new TH1F("HLT_SumEt_log_e", "HLT Sum |E_{T}|;log_{10}(SumE_{T}/GeV) Signal-like e", 20, -1.875, 4.125)); - addHistogram(new TH1F("HLT_MEz_e", "HLT Missing E_{z};E_{z} (GeV) Signal-like e", 100, -298.5,298.5)); - addHistogram(new TH1F("HLT_SumE_e", "HLT Sum |E|;SumE (GeV) Signal-like e", 153, -27., 18003.)); - //addHistogram(new TH2F("HLT_MET_etaphi_etweight_e", "HLT MET #eta/#phi(|Missing E_{T}|);#eta;#phi (rad) Signal-like e", 24, -4.8, 4.8, m_phi_bins, m_phi_min, m_phi_max)); - - - /// Alternative algorithms: tc_lcw, tc_em, pueta, pufit, mht, feb, fex - for (std::vector<std::string>::iterator it2 = m_monitoring_alg.begin(); it2 != m_monitoring_alg.end(); it2++) { - - std::string shifter_path_alg = mongroupName + "/" + *it2; - addMonGroup(new MonGroup(this, shifter_path_alg, run)); - setCurrentMonGroup(shifter_path_alg); - - addHistogram(new TH1F("HLT_MEx", "HLT Missing E_{x};E_{x} (GeV)", 199, -298.5, 298.5)); - addHistogram(new TH1F("HLT_MEy", "HLT Missing E_{y};E_{y} (GeV)", 199, -298.5, 298.5)); - addHistogram(new TH1F("HLT_MET", "HLT |Missing E_{T}|;ME_{T} (GeV)", m_et_bins, m_et_min, m_et_max)); - addHistogram(new TH1F("HLT_MET_lin1", "HLT |Missing E_{T}| (0-10 GeV);ME_{T} (GeV)", 110, -0.5, 10.5)); - addHistogram(new TH1F("HLT_SumEt", "HLT Sum |E_{T}|;SumE_{T} (GeV)", m_sumet_bins, m_sumet_min, m_sumet_max)); - addHistogram(new TH1F("HLT_MET_phi", "HLT MET #phi (rad);#phi (rad)", m_phi_bins, m_phi_min, m_phi_max)); - addHistogram(new TH1F("HLT_MET_phi_etweight", "HLT MET #phi(|Missing E_{T}|);#phi (rad)", m_phi_bins, m_phi_min, m_phi_max)); - addHistogram(new TH1F("HLT_MEx_log", "HLT Missing E_{x};sgn(E_{x}) log_{10}(E_{x}/GeV)", 27, -4.125, 4.125)); - addHistogram(new TH1F("HLT_MEy_log", "HLT Missing E_{y};sgn(E_{y}) log_{10}(E_{y}/GeV)", 27, -4.125, 4.125)); - addHistogram(new TH1F("HLT_MET_log", "HLT |Missing E_{T}|;log_{10}(ME_{T}/GeV)", 20, -1.875, 4.125)); - addHistogram(new TH1F("HLT_SumEt_log", "HLT Sum |E_{T}|;log_{10}(SumE_{T}/GeV)", 20, -1.875, 4.125)); - addHistogram(new TH1F("HLT_MEz", "HLT Missing E_{z};E_{z} (GeV)", 100, -298.5,298.5)); - addHistogram(new TH1F("HLT_SumE", "HLT Sum |E|;SumE (GeV)", 153, -27., 18003.)); - addHistogram(new TH1F("HLT_MEz_log", "HLT Missing E_{z};sgn(ME_{z}) log_{10}(ME_{z}/GeV)",27, -4.125, 4.125)); - addHistogram(new TH1F("HLT_SumE_log", "HLT Sum |E|;log_{10}(SumE/GeV)",40, -1.875, 6.125)); - addHistogram(new TH2F("HLT_MET_etaphi", "HLT MET #eta/#phi;#eta;#phi (rad)", 24, -4.8, 4.8, m_phi_bins, m_phi_min, m_phi_max)); - addHistogram(new TH2F("HLT_MET_etaphi_etweight", "HLT MET #eta/#phi(|Missing E_{T}|);#eta;#phi (rad)", 24, -4.8, 4.8, m_phi_bins, m_phi_min, m_phi_max)); - //addHistogram(new TH1F("HLT_XS", "HLT MET Significance;Significance (XS/GeV^{1/2})", 40, -0.025, 20.025)); - //addHLTStatusHistogram(); + // Basic HLT histograms + monFolderName = monGroupName + "/Primary"; + addMonGroup(new MonGroup(this, monFolderName, run)); + setCurrentMonGroup(monFolderName); + addHLTBasicHistograms(); + + // Efficiencies Shifter HLT histograms + monFolderName = monGroupName + "/Efficiency"; + addMonGroup(new MonGroup(this, monFolderName, run)); + setCurrentMonGroup(monFolderName); + met_signatures_tolook = m_hlt_met_signatures_tolook_shifter; + addHLTProfileHistograms(met_signatures_tolook); + + // mu50 histograms + monFolderName = monGroupName + "/mu50"; + addMonGroup(new MonGroup(this, monFolderName, run)); + setCurrentMonGroup(monFolderName); + addHLTBasicHistograms(); + + // Signal like electron histograms + monFolderName = monGroupName + "/SignalEl"; + addMonGroup(new MonGroup(this, monFolderName, run)); + setCurrentMonGroup(monFolderName); + addHLTBasicHistograms(); + met_signatures_tolook = m_hlt_met_signatures_tolook_shifter; + addHLTProfileHistograms(met_signatures_tolook); + + // Signal like muon histograms + monFolderName = monGroupName + "/SignalMu"; + addMonGroup(new MonGroup(this, monFolderName, run)); + setCurrentMonGroup(monFolderName); + addHLTBasicHistograms(); + met_signatures_tolook = m_hlt_met_signatures_tolook_shifter; + addHLTProfileHistograms(met_signatures_tolook); + + // HLT cell status histograms + monFolderName = monGroupName + "/Status"; + addMonGroup(new MonGroup(this, monFolderName, run)); + setCurrentMonGroup(monFolderName); + addHLTStatusHistograms(); + + /// Alternative algorithms: tc_lcw, tc_em, pueta, pufit, mht, etc. + for (std::vector<std::string>::iterator it2 = m_monitoring_alg_shifter.begin(); it2 != m_monitoring_alg_shifter.end(); it2++) { + + monFolderName = monGroupName + "/" + *it2; + addMonGroup(new MonGroup(this, monFolderName, run)); + setCurrentMonGroup(monFolderName); + + addHLTBasicHistograms(); } @@ -269,137 +276,110 @@ StatusCode HLTMETMonTool::book() { if (!m_make_expert_histograms) return StatusCode::SUCCESS; - - //########################## - //-- Book Expert histograms - //########################## - //********************** - /// Expert L1 histograms - //********************** - /// No trigger requirement - std::string monGroupName = m_expert_path + "/L1"; + // Book Expert L1 histograms *************** + monGroupName = m_expert_path + "/L1"; addMonGroup(new MonGroup(this, monGroupName.c_str(), run)); - addHistogram(new TH1F("L1_METx_log", "L1 Missing E_{x};sgn(E_{x}) log_{10}(E_{x}/GeV)", 55, -4.125, 4.125)); - addHistogram(new TH1F("L1_METy_log", "L1 Missing E_{y};sgn(E_{y}) log_{10}(E_{y}/GeV)", 55, -4.125, 4.125)); - //addHistogram(new TH1F("L1_MET", "L1 MET (GeV);MET (GeV)", m_et_bins, m_et_min, m_et_max)); - //addHistogram(new TH1F("L1_MET_phi", "L1 MET #phi (rad);MET #phi (rad)", m_phi_bins, m_phi_min, m_phi_max)); + // Jets Expert L1 histograms + monFolderName = monGroupName + "/Jets"; + addMonGroup(new MonGroup(this, monFolderName, run)); + setCurrentMonGroup(monFolderName); + addL1JetHistograms(); + // Efficiencies Expert L1 histograms + monFolderName = monGroupName + "/Efficiency"; + addMonGroup(new MonGroup(this, monFolderName, run)); + setCurrentMonGroup(monFolderName); + met_signatures_tolook = m_l1_met_signatures_tolook_expert; + addL1ProfileHistograms(met_signatures_tolook); - /// With trigger rquirement: L1_XE50 etc. - for (it = m_l1_met_signatures_tolook.begin(); it != m_l1_met_signatures_tolook.end(); it++) { + // With trigger rquirement: L1_XE50 etc. + for (it = m_l1_met_signatures_tolook_shifter.begin(); it != m_l1_met_signatures_tolook_shifter.end(); it++) { - std::string trigger_path = monGroupName + "/" + it->first; + monFolderName = monGroupName + "/" + it->first; + addMonGroup(new MonGroup(this, monFolderName, run)); + setCurrentMonGroup(monFolderName); - //declare a group of histograms - addMonGroup(new MonGroup(this, trigger_path, run)); - setCurrentMonGroup(trigger_path); - - addHistogram(new TH1F("L1_MET", "L1 MET (GeV);MET (GeV)", m_et_bins, m_et_min, m_et_max)); - addHistogram(new TH1F("L1_METx", "L1 Missing E_{x};E_{x} (GeV)", 199, -298.5, 298.5)); - addHistogram(new TH1F("L1_METy", "L1 Missing E_{y};E_{y} (GeV)", 199, -298.5, 298.5)); - addHistogram(new TH1F("L1_SumEt", "L1 SumEt (GeV);SumEt (GeV)", m_sumet_bins, m_sumet_min, m_sumet_max)); - addHistogram(new TH1F("L1_MET_phi", "L1 MET #phi (rad);MET #phi (rad)", m_phi_bins, m_phi_min, m_phi_max)); - addHistogram(new TH1F("L1_MET_phi_etweight", "L1 MET #phi (|Missing E_{T}|);MET #phi (rad)", m_phi_bins, m_phi_min, m_phi_max)); - addHistogram(new TH1F("L1_MET_log", "L1 |Missing E_{T}|;log_{10}(ME_{T}/GeV)", 40, -1.875, 4.125)); - addHistogram(new TH1F("L1_METx_log", "L1 Missing E_{x};sgn(E_{x}) log_{10}(E_{x}/GeV)", 55, -4.125, 4.125)); - addHistogram(new TH1F("L1_METy_log", "L1 Missing E_{y};sgn(E_{y}) log_{10}(E_{y}/GeV)", 55, -4.125, 4.125)); - addHistogram(new TH1F("L1_SumEt_log", "L1 Sum |E_{T}|;log_{10}(SumE_{T}/GeV)", 40, -1.875, 4.125)); + addL1BasicHistograms(); } - //*********************** - // Expert HLT histpograms - //*********************** - /// HLT No specific trigger requirement + // Book Expert HLT histpograms *********** monGroupName = m_expert_path + "/HLT"; addMonGroup(new MonGroup(this, monGroupName.c_str(), run)); - addHistogram(new TH1F("HLT_MEx_log", "HLT Missing E_{x};sgn(E_{x}) log_{10}(E_{x}/GeV)", 27, -4.125, 4.125)); - addHistogram(new TH1F("HLT_MEy_log", "HLT Missing E_{y};sgn(E_{y}) log_{10}(E_{y}/GeV)", 27, -4.125, 4.125)); - addHistogram(new TH1F("HLT_MET_lin1", "HLT |Missing E_{T}| (0-10 GeV);ME_{T} (GeV)", 110, -0.5, 10.5)); - //addHistogram(new TH1F("HLT_MET_phi_etweight", "HLT MET #phi(|Missing E_{T}|);#phi (rad)", m_phi_bins, m_phi_min, m_phi_max)); - addHistogram(new TH1F("HLT_MEz_log", "HLT Missing E_{z};sgn(ME_{z}) log_{10}(ME_{z}/GeV)",27, -4.125, 4.125)); - addHistogram(new TH1F("HLT_SumE_log", "HLT Sum |E|;log_{10}(SumE/GeV)",40, -1.875, 6.125)); - addHistogram(new TH1F("HLT_XS", "HLT MET Significance;Significance (XS/GeV^{1/2})", 40, -0.025, 20.025)); - addHLTStatusHistogram(); + + // Efficiencies Expert HLT histograms + monFolderName = monGroupName + "/Efficiency"; + addMonGroup(new MonGroup(this, monFolderName, run)); + setCurrentMonGroup(monFolderName); + met_signatures_tolook = m_hlt_met_signatures_tolook_expert; + addHLTProfileHistograms(met_signatures_tolook); + + /// HLT cell component histograms + monFolderName = monGroupName + "/Component"; + addMonGroup(new MonGroup(this, monFolderName, run)); + setCurrentMonGroup(monFolderName); addHLTCompHistograms(); - - /// With trigger requiriment: xe35, xe80, xe100 etc. - for (it = m_hlt_met_signatures_tolook.begin(); it != m_hlt_met_signatures_tolook.end(); it++) { - - std::string expert_path_trigger = monGroupName + "/" + it->first; - addMonGroup(new MonGroup(this, expert_path_trigger, run)); - setCurrentMonGroup(expert_path_trigger); - - addHistogram(new TH1F("HLT_MEx", "HLT Missing E_{x};E_{x} (GeV)", 199, -298.5, 298.5)); - addHistogram(new TH1F("HLT_MEy", "HLT Missing E_{y};E_{y} (GeV)", 199, -298.5, 298.5)); - addHistogram(new TH1F("HLT_MET", "HLT |Missing E_{T}|;ME_{T} (GeV)", m_et_bins, m_et_min, m_et_max)); - addHistogram(new TH1F("HLT_MET_lin1", "HLT |Missing E_{T}| (0-10 GeV);ME_{T} (GeV)", 110, -0.5, 10.5)); - addHistogram(new TH1F("HLT_SumEt", "HLT Sum |E_{T}|;SumE_{T} (GeV)", m_sumet_bins, m_sumet_min, m_sumet_max)); - addHistogram(new TH1F("HLT_MET_phi", "HLT MET #phi (rad);#phi (rad)", m_phi_bins, m_phi_min, m_phi_max)); - addHistogram(new TH1F("HLT_MET_phi_etweight", "HLT MET #phi(|Missing E_{T}|);#phi (rad)", m_phi_bins, m_phi_min, m_phi_max)); - addHistogram(new TH1F("HLT_MEx_log", "HLT Missing E_{x};sgn(E_{x}) log_{10}(E_{x}/GeV)", 27, -4.125, 4.125)); - addHistogram(new TH1F("HLT_MEy_log", "HLT Missing E_{y};sgn(E_{y}) log_{10}(E_{y}/GeV)", 27, -4.125, 4.125)); - addHistogram(new TH1F("HLT_MET_log", "HLT |Missing E_{T}|;log_{10}(ME_{T}/GeV)", 20, -1.875, 4.125)); - addHistogram(new TH1F("HLT_SumEt_log", "HLT Sum |E_{T}|;log_{10}(SumE_{T}/GeV)", 20, -1.875, 4.125)); - addHistogram(new TH1F("HLT_MEz", "HLT Missing E_{z};E_{z} (GeV)", 100, -298.5,298.5)); - addHistogram(new TH1F("HLT_SumE", "HLT Sum |E|;SumE (GeV)", 153, -27., 18003.)); - addHistogram(new TH1F("HLT_MEz_log", "HLT Missing E_{z};sgn(ME_{z}) log_{10}(ME_{z}/GeV)",27, -4.125, 4.125)); - addHistogram(new TH1F("HLT_SumE_log", "HLT Sum |E|;log_{10}(SumE/GeV)",40, -1.875, 6.125)); - addHistogram(new TH2F("HLT_MET_etaphi", "HLT MET #eta/#phi;#eta;#phi (rad)", 24, -4.8, 4.8, m_phi_bins, m_phi_min, m_phi_max)); - addHistogram(new TH2F("HLT_MET_etaphi_etweight", "HLT MET #eta/#phi(|Missing E_{T}|);#eta;#phi (rad)", 24, -4.8, 4.8, m_phi_bins, m_phi_min, m_phi_max)); - //addHistogram(new TH1F("HLT_XS", "HLT MET Significance;Significance (XS/GeV^{1/2})", 40, -0.025, 20.025)); - //addHLTStatusHistogram(); + + // Alternative algorithms: tc_lcw, tc_em, pueta, pufit, mht, etc. + for (std::vector<std::string>::iterator it2 = m_monitoring_alg_expert.begin(); it2 != m_monitoring_alg_expert.end(); it2++) { + + monFolderName = monGroupName + "/" + *it2; + addMonGroup(new MonGroup(this, monFolderName, run)); + setCurrentMonGroup(monFolderName); + + addHLTBasicHistograms(); } - - /// Offline MET - monGroupName = m_expert_path + "/Offline"; - addMonGroup(new MonGroup(this, monGroupName.c_str(), run)); - setCurrentMonGroup(monGroupName); - addHistogram(new TH1F("Offline_MET", "Offline MET;Et", m_et_bins, m_et_min, m_et_max)); - addHistogram(new TH1F("Offline_METx", "Offline METx;Et", 199, -298.5, 298.5)); - addHistogram(new TH1F("Offline_METy", "Offline METy;Et", 199, -298.5, 298.5)); - addHistogram(new TH1F("Offline_SumEt", "Offline SumEt;sumEt", m_sumet_bins, m_sumet_min, m_sumet_max)); - addHistogram(new TH1F("Offline_MET_phi", "Offline MET phi;Phi", m_phi_bins, m_phi_min, m_phi_max)); + + // With trigger requiriment: xe35, xe80, xe100 etc. + for (it = m_hlt_met_signatures_tolook_shifter.begin(); it != m_hlt_met_signatures_tolook_shifter.end(); it++) { - /// L1/HLT correlations and difference: XE35 vs xe35 and XE60 vs xe80 - monGroupName = m_expert_path + "/L1_vs_HLT"; - addMonGroup(new MonGroup(this, monGroupName.c_str(), run)); - setCurrentMonGroup(monGroupName); + monFolderName = monGroupName + "/" + it->first; + addMonGroup(new MonGroup(this, monFolderName, run)); + setCurrentMonGroup(monFolderName); + + addHLTBasicHistograms(); + + } + + monGroupName = m_expert_path; + + // Book Offline MET histograms ********* + monFolderName = monGroupName + "/Offline"; + addMonGroup(new MonGroup(this, monFolderName.c_str(), run)); + setCurrentMonGroup(monFolderName); + addOffMETHistograms(); + + + // Book L1 vs HLT histograms *********** + monFolderName = monGroupName + "/L1_vs_HLT"; + addMonGroup(new MonGroup(this, monFolderName.c_str(), run)); + setCurrentMonGroup(monFolderName); addL1vsHLTHistograms(); - /// HLT/Offline correlations and differences - monGroupName = m_expert_path + "/HLT_vs_Offline"; - addMonGroup(new MonGroup(this, monGroupName.c_str(), run)); - setCurrentMonGroup(monGroupName); + + + // Book HLT vs Offline histograms ******** + monFolderName = monGroupName + "/HLT_vs_Offline"; + addMonGroup(new MonGroup(this, monFolderName.c_str(), run)); + setCurrentMonGroup(monFolderName); addHLTvsOffHistograms(); - /// L1/Offline correlations and differences - monGroupName = m_expert_path + "/L1_vs_Offline"; - addMonGroup(new MonGroup(this, monGroupName.c_str(), run)); - setCurrentMonGroup(monGroupName); + + // Book L1 vs Offline histograms ******** + monFolderName = monGroupName + "/L1_vs_Offline"; + addMonGroup(new MonGroup(this, monFolderName.c_str(), run)); + setCurrentMonGroup(monFolderName); addL1vsOffHistograms(); - /// HLT Muons and Electrons - // muon histograms - monGroupName = m_expert_path + "/ElMu"; - addMonGroup(new MonGroup(this, monGroupName.c_str(), run)); - setCurrentMonGroup(monGroupName); - //int etabins = 14; double etamin = -2.8; double etamax = 2.8; - //addHistogram(new TH1F("HLT_base_muon_pt", "HLT muon p_{T};p_{T} (GeV)", m_et_bins, m_et_min, m_et_max)); - //addHistogram(new TH1F("HLT_base_muon_phi", "HLT muon phi;#phi (rad)", m_phi_bins, m_phi_min, m_phi_max)); - //addHistogram(new TH1F("HLT_base_muon_eta", "HLT muon eta;#eta", etabins, etamin, etamax)); - // muon histograms - addHistogram(new TH1F("HLT_electronpt", "HLT Electron Pt (GeV)", 50, 0, 100)); - //addHistogram(new TH1F("HLT_electroneta", "HLT Electron Eta", 25, -5, 5)); - addHistogram(new TH1F("HLT_electronmult", "HLT Electron Multiplicity", 10, 0, 10)); - // electron histograms - addHistogram(new TH1F("HLT_muonpt", "HLT Muon Pt (GeV)", 200, 0, 100)); - //addHistogram(new TH1F("HLT_muoneta", "HLT Muon Eta", 25, -5, -5)); - addHistogram(new TH1F("HLT_muonmult", "HLT Muon Multiplicity", 10, 0, 10)); + // Book HLT Muons and Electrons histograms ******** + monFolderName = monGroupName + "/ElMu"; + addMonGroup(new MonGroup(this, monFolderName.c_str(), run)); + setCurrentMonGroup(monFolderName); + addElMuHistograms(); return StatusCode::SUCCESS; } @@ -427,8 +407,7 @@ StatusCode HLTMETMonTool::fill() { StatusCode HLTMETMonTool::proc() { std::string eff_name; - std::string mongroupName; - //TH1 *h_numerator; + std::string monGroupName; ATH_MSG_DEBUG("in HLTMETMonTool::proc()"); @@ -436,180 +415,18 @@ StatusCode HLTMETMonTool::proc() { print_trigger_stats(); // efficiency histo shifter/L1 - - mongroupName = m_shifter_path + "/L1"; - setCurrentMonGroup(mongroupName); - - - //eff_name = "Effh_" + m_numerator_trigger[0]; - //h_numerator = trig_eff_num[0]; - //h_numerator->Sumw2(); - //h_denominator->Sumw2(); - //if(h_denominator->GetEntries() != 0) { - // ATH_MSG_DEBUG(" performing division "); - //hist(eff_name)->Divide(h_numerator, h_denominator); - //} + monGroupName = m_shifter_path + "/L1"; + setCurrentMonGroup(monGroupName); // efficiency histos shifter/HLT - - mongroupName = m_shifter_path + "/HLT"; - setCurrentMonGroup(mongroupName); - - - //for (int i_eff = 1; i_eff < 4; i_eff++){ - //eff_name = "Effh_" + m_numerator_trigger[i_eff]; - //hist(eff_name)->Divide(trig_eff_num[i_eff], h_denominator); - //ATH_MSG_DEBUG("in HLTMETMonTool::proc() filling efficiency for trigger " << m_numerator_trigger[i_eff]); - //} - + monGroupName = m_shifter_path + "/HLT"; + setCurrentMonGroup(monGroupName); return StatusCode::SUCCESS; } -//___________________________________________________________________________________________________________ -void HLTMETMonTool::addHLTCompHistograms() { - - // HLT MET all components in one 2d histogram - float fMaxEFC = float(m_compNames.size()); - fMaxEFC -= 0.5; - int fBinEFC = int(m_compNames.size()); - TH2F *h2f[10] = {0}; - h2f[0] = new TH2F("compN_compEx", "HLT MissingE_{x} VS component;;sgn(ME_{x}) log_{10}(E_{x}/GeV)", fBinEFC, -0.5, fMaxEFC, 27, -4.125, 4.125); - h2f[1] = new TH2F("compN_compEy", "HLT Missing E_{y} VS component;;sgn(ME_{y}) log_{10}(E_{y}/GeV)", fBinEFC, -0.5, fMaxEFC, 27, -4.125, 4.125); - h2f[2] = new TH2F("compN_compEz", "HLT Missing E_{z} VS component;;sgn(ME_{z}) log_{10}(E_{z}/GeV)", fBinEFC, -0.5, fMaxEFC, 27, -4.125, 4.125); - h2f[3] = new TH2F("compN_compEt", "HLT MissingE_{T} VS component;;sgn(ME_{T}) log_{10}(ME_{T}/GeV)", fBinEFC, -0.5, fMaxEFC, 20, -1.875, 4.125); - h2f[4] = new TH2F("compN_compSumEt", "HLT Sum |E_{T}| VS component;;log_{10}(SumE_{T}/GeV)", fBinEFC, -0.5, fMaxEFC, 20, -1.875, 4.125); - h2f[5] = new TH2F("compN_compSumE", "HLT Sum |E| VS component;;log_{10}(SumE/GeV)", fBinEFC, -0.5, fMaxEFC, 20, -1.875, 4.125); - h2f[6] = new TH2F("compN_compEt_lin", "HLT MissingE_{T} VS component;;ME_{T} (GeV)", fBinEFC, -0.5, fMaxEFC, 102, -13.5, 601.5); - h2f[7] = new TH2F("compN_compSumEt_lin", "HLT Sum |E_{T}| VS component;;SumE_{T} (GeV)", fBinEFC, -0.5, fMaxEFC, 236, -30, 2802); - h2f[8] = new TH2F("compN_HLT_MET_status", "HLT MET Status VS component;;", fBinEFC, -0.5, fMaxEFC,32, -0.5, 31.5); - h2f[9] = new TH2F("compN_HLT_usedChannels", "HLT Used Channels VS component;;log_{10}(N > 0)", fBinEFC, -0.5, fMaxEFC,13,-0.5,6.0); - - for (size_t k = 0; k < 10; k++) { // 10 hists - for (size_t cn = 0; cn < m_compNames.size(); cn++) { // 25 bins - if(cn < m_compNames.size()) h2f[k]->GetXaxis()->SetBinLabel(cn+1, m_compNames[cn].c_str()); - } - // for status v. component, set bin labels for Y axis - if (k == 8) { - for (size_t j = 0; j < m_bitNames.size(); j++) { - if(j < m_bitNames.size()) h2f[k]->GetYaxis()->SetBinLabel(j+1, m_bitNames[j].c_str()); - } - h2f[k]->GetYaxis()->SetLabelFont(42); - h2f[k]->GetYaxis()->SetLabelOffset(0.002); - h2f[k]->GetYaxis()->SetLabelSize(0.03); - } - if (k == 9) { - // 10^x (x = 0.5, 1.0 1.5 ....) - /*std::string binlb_nc[13] = { "none", "[0-3]", "[4-9]", "[10-31]", - "[32-99]", "[100-316]", "[317-999]", "[1-3.16]10^{3}", "[0.32 - 1]10^{4}", - "[1 - 3.2]10^{4}", "[0.32 - 1]10^{5}", "[1 - 3.2]10^{5}", "[0.32 - 1]10^{6}" }; - for(size_t l = 0; l < 13; l++) {*/ - h2f[k]->GetYaxis()->SetBinLabel(1,"none"); - //} - } - addHistogram(h2f[k]); - } - - int phibins = 16; double phimin = m_phi_min; double phimax = m_phi_max; - int etabins = 24; double etamin = -4.8; double etamax = 4.8; - - for (unsigned int j = 0; j < m_compNames.size(); j++) { - std::string name = Form("compN_EtaPhi_%02d", j); - std::string title = m_compNames[j]; - title += ": N(#eta, #phi);#eta;#phi [rad];"; - TH2F* h = new TH2F(name.c_str(), title.c_str(), etabins, etamin, etamax, phibins, phimin, phimax); - addHistogram(h); - - name = Form("compEt_lin_EtaPhi_%02d", j); - title = m_compNames[j]; - title += ": MissingE_{T}(#eta, #phi); #eta; #phi [rad];ME_{T}/GeV"; - h = new TH2F(name.c_str(), title.c_str(), etabins, etamin, etamax, phibins, phimin, phimax); - addHistogram(h); - - name = Form("compSumEt_lin_EtaPhi_%02d", j); - title = m_compNames[j]; - title += ": Sum |E_{T}|(#eta, #phi); #eta; #phi [rad];Sum|E_{T}|/GeV"; - h = new TH2F(name.c_str(), title.c_str(), etabins, etamin, etamax, phibins, phimin, phimax); - addHistogram(h); - - name = Form("compSumE_lin_EtaPhi_%02d", j); - title = m_compNames[j]; - title += ": Sum |E|(#eta, #phi); #eta; #phi [rad];Sum|E|/GeV"; - h = new TH2F(name.c_str(), title.c_str(), etabins, etamin, etamax, phibins, phimin, phimax); - addHistogram(h); - - } - -} - -//___________________________________________________________________________________________________________ -void HLTMETMonTool::addHLTStatusHistogram() { - TH1F *h1i = new TH1F("HLT_MET_status", "HLT MET Status", 32, -0.5, 31.5); - for (size_t j = 0; j < m_bitNames.size(); j++) { - if(j < m_bitNames.size()) h1i->GetXaxis()->SetBinLabel(j+1, m_bitNames[j].c_str()); - } - addHistogram(h1i); -} - -//___________________________________________________________________________________________________________ -void HLTMETMonTool::addL1vsHLTHistograms() { - - // Correlation - addHistogram(new TH2F("L1_HLT_EtCor", "L1 vs HLT Missing E_{T} ; HLTME_{T} (GeV); L1ME_{T} (GeV)", m_et_bins, m_et_min, m_et_max, m_et_bins, m_et_min, m_et_max)); - addHistogram(new TH2F("L1_HLT_SumEtCor", "L1 vs HLT Sum |E_{T}| ; HLTSum|E_{T}| (GeV); L1Sum|E_{T}| (GeV)", m_sumet_bins, m_sumet_min, m_sumet_max, m_sumet_bins, m_sumet_min, m_sumet_max)); - addHistogram(new TH2F("L1_HLT_PhiCor", "L1 vs HLT #phi ; EF #phi (rad); L1 #phi (rad)", m_phi_bins, m_phi_min, m_phi_max, m_phi_bins, m_phi_min, m_phi_max)); - - // Differences - addHistogram(new TH1F("L1_HLT_dEt", "#DeltaE_{T}(L1-HLT) ; #DeltaE_{T} (GeV)", m_det_bins, m_det_min, m_det_max)); - addHistogram(new TH1F("L1_HLT_dPhi", "#Delta#phi(L1-HLT) ; #Delta#phi (GeV)", m_phi_bins, m_phi_min, m_phi_max)); - addHistogram(new TH1F("L1_HLT_dEx", "#DeltaE_{x}(L1-HLT) ; #DeltaE_{x} (GeV)", m_det_bins, m_det_min, m_det_max)); - addHistogram(new TH1F("L1_HLT_dEy", "#DeltaE_{y}(L1-HLT) ; #DeltaE_{y} (GeV)", m_det_bins, m_det_min, m_det_max)); - -} - -//___________________________________________________________________________________________________________ -void HLTMETMonTool::addHLTvsOffHistograms() { - - addHistogram(new TH2F("HLT_Off_EtCor", "EtCor_HLTMET_OffMET; Offline MET ; HLT MET", m_et_bins, m_et_min, m_et_max, m_et_bins, m_et_min, m_et_max)); - addHistogram(new TH2F("HLT_Off_SumEtCor", "SumEtCor_HLTMET_OffMET; Offline SumEt ; HLT SumEt", m_sumet_bins, m_sumet_min, m_sumet_max, m_sumet_bins, m_sumet_min, m_sumet_max)); - addHistogram(new TH2F("HLT_Off_PhiCor", "PhiCor_HLTMET_OffMET; Offline #phi ; HLT #phi", m_phi_bins, m_phi_min, m_phi_max, m_phi_bins, m_phi_min, m_phi_max)); - addHistogram(new TH1F("HLT_Off_dEt", "dEt_HLTMET_OffMET; dEt", m_det_bins, m_det_min, m_det_max)); - addHistogram(new TH1F("HLT_Off_dPhi", "dPhi_HLTMET_OffMET; dPhi", m_phi_bins, m_phi_min, m_phi_max)); - addHistogram(new TH1F("HLT_Off_dEx", "dEx_HLTMET_OffMET; dEx", m_det_bins, m_det_min, m_det_max)); - addHistogram(new TH1F("HLT_Off_dEy", "dEy_HLTMET_OffMET; dEy", m_det_bins, m_det_min, m_det_max)); -} - -//___________________________________________________________________________________________________________ -void HLTMETMonTool::addL1vsOffHistograms() { - - addHistogram(new TH2F("L1_Off_EtCor", "EtCor_L1MET_OffMET; Offline MET ; L1 MET", m_et_bins, m_et_min, m_et_max, m_et_bins, m_et_min, m_et_max)); - addHistogram(new TH2F("L1_Off_SumEtCor", "SumEtCor_L1MET_OffMET; Offline SumEt ; L1 SumEt", m_sumet_bins, m_sumet_min, m_sumet_max, m_sumet_bins, m_sumet_min, m_sumet_max)); - addHistogram(new TH2F("L1_Off_PhiCor", "PhiCor_L1MET_OffMET; Offline #phi ; L1 #phi", m_phi_bins, m_phi_min, m_phi_max, m_phi_bins, m_phi_min, m_phi_max)); - addHistogram(new TH1F("L1_Off_dEt", "dEt_L1MET_OffMET; dEt", m_det_bins, m_det_min, m_det_max)); - addHistogram(new TH1F("L1_Off_dPhi", "dPhi_L1MET_OffMET; dPhi", m_phi_bins, m_phi_min, m_phi_max)); - addHistogram(new TH1F("L1_Off_dEx", "dEx_L1MET_OffMET; dEx", m_det_bins, m_det_min, m_det_max)); - addHistogram(new TH1F("L1_Off_dEy", "dEy_L1MET_OffMET; dEy", m_det_bins, m_det_min, m_det_max)); -} -//___________________________________________________________________________________________________________ -void HLTMETMonTool::trigger_decision() { - std::vector<std::map<std::string,int>> met_signatures_tolook; - met_signatures_tolook.push_back(m_l1_met_signatures_tolook); - met_signatures_tolook.push_back(m_hlt_met_signatures_tolook); - - if (m_print_met_trig_stats) { - std::map<std::string,int>::iterator iter; - for (unsigned int i = 0; i<met_signatures_tolook.size(); i++) { - for (iter = met_signatures_tolook[i].begin(); iter != met_signatures_tolook[i].end(); ++iter) { - std::string name = iter->first; - if (getTDT()->isPassed(name, TrigDefs::eventAccepted)) { - iter->second +=1; - } - } - } - } -} //___________________________________________________________________________________________________________ StatusCode HLTMETMonTool::fillMETHist() { @@ -625,140 +442,195 @@ StatusCode HLTMETMonTool::fillMETHist() { } - // retrieve xAOD L1 ROI - const xAOD::EnergySumRoI *l1_roi_cont = 0; - sc = evtStore()->retrieve(l1_roi_cont, m_lvl1_roi_key); - if(sc.isFailure() || !l1_roi_cont) { + // retrieve EventInfo + const xAOD::EventInfo *eventInfo = nullptr; + sc = evtStore()->retrieve(eventInfo, "EventInfo"); + if(sc.isFailure() || !eventInfo) { + ATH_MSG_WARNING("Could not retrieve EventInfo with key \"EventInfo\" from TDS" ); + } + + // retrieve L1 Jet ROI + const xAOD::JetRoIContainer *v_l1_jet_roi_cont = 0; + sc = evtStore()->retrieve(v_l1_jet_roi_cont, m_lvl1_jet_roi_key); + if(sc.isFailure() || !v_l1_jet_roi_cont) { + ATH_MSG_WARNING("Could not retrieve LVL1_Jet_RoIs with key \"" << m_lvl1_jet_roi_key << "\" from TDS" ); + } + + // retrieve xAOD L1 ROI + const xAOD::EnergySumRoI *v_l1_roi_cont = 0; + sc = evtStore()->retrieve(v_l1_roi_cont, m_lvl1_roi_key); + if(sc.isFailure() || !v_l1_roi_cont) { ATH_MSG_WARNING("Could not retrieve LVL1_RoIs with key \"" << m_lvl1_roi_key << "\" from TDS" ); } // retrieve HLT containers // Get HLT (CELL) container - const xAOD::TrigMissingETContainer *hlt_cell_met_cont = 0; - sc = evtStore()->retrieve(hlt_cell_met_cont, m_hlt_cell_met_key); - if (sc.isFailure() || !hlt_cell_met_cont) { + const xAOD::TrigMissingETContainer *v_hlt_cell_met_cont = 0; + sc = evtStore()->retrieve(v_hlt_cell_met_cont, m_hlt_cell_met_key); + if (sc.isFailure() || !v_hlt_cell_met_cont) { ATH_MSG_WARNING("Could not retrieve TrigMissingETContainer with key " << m_hlt_cell_met_key << " from TDS"); } else - ATH_MSG_DEBUG("Accessing met (cell) with " << hlt_cell_met_cont->size() << " elements"); + ATH_MSG_DEBUG("Accessing met (cell) with " << v_hlt_cell_met_cont->size() << " elements"); // Get HLT mht container - const xAOD::TrigMissingETContainer *hlt_mht_met_cont = 0; - sc = evtStore()->retrieve(hlt_mht_met_cont, m_hlt_mht_met_key); - if (sc.isFailure() || !hlt_mht_met_cont) { + const xAOD::TrigMissingETContainer *v_hlt_mht_met_cont = 0; + sc = evtStore()->retrieve(v_hlt_mht_met_cont, m_hlt_mht_met_key); + if (sc.isFailure() || !v_hlt_mht_met_cont) { ATH_MSG_WARNING("Could not retrieve TrigMissingETContainer with key " << m_hlt_mht_met_key << " from TDS"); } else { - ATH_MSG_DEBUG("Accessing met(mht) with " << hlt_mht_met_cont->size() << " elements"); - //std::cout << "Found mht = " << m_hlt_mht_met_key << std::endl; + ATH_MSG_DEBUG("Accessing met(mht) with " << v_hlt_mht_met_cont->size() << " elements"); } // Get HLT mhtem container - const xAOD::TrigMissingETContainer *hlt_mhtem_met_cont = 0; - sc = evtStore()->retrieve(hlt_mhtem_met_cont, m_hlt_mhtem_met_key); - if (sc.isFailure() || !hlt_mhtem_met_cont) { + const xAOD::TrigMissingETContainer *v_hlt_mhtem_met_cont = 0; + sc = evtStore()->retrieve(v_hlt_mhtem_met_cont, m_hlt_mhtem_met_key); + if (sc.isFailure() || !v_hlt_mhtem_met_cont) { ATH_MSG_WARNING("Could not retrieve TrigMissingETContainer with key " << m_hlt_mhtem_met_key << " from TDS"); } else { - ATH_MSG_DEBUG("Accessing met(mhtem) with " << hlt_mhtem_met_cont->size() << " elements"); - //std::cout << "Found mhtem = " << m_hlt_mhtem_met_key << std::endl; + ATH_MSG_DEBUG("Accessing met(mhtem) with " << v_hlt_mhtem_met_cont->size() << " elements"); } // Get HLT trkmht container - const xAOD::TrigMissingETContainer *hlt_trkmht_met_cont = 0; - sc = evtStore()->retrieve(hlt_trkmht_met_cont, m_hlt_trkmht_met_key); - if (sc.isFailure() || !hlt_trkmht_met_cont) { + const xAOD::TrigMissingETContainer *v_hlt_trkmht_met_cont = 0; + sc = evtStore()->retrieve(v_hlt_trkmht_met_cont, m_hlt_trkmht_met_key); + if (sc.isFailure() || !v_hlt_trkmht_met_cont) { ATH_MSG_WARNING("Could not retrieve TrigMissingETContainer with key " << m_hlt_trkmht_met_key << " from TDS"); } else { - ATH_MSG_DEBUG("Accessing met(trkmht) with " << hlt_trkmht_met_cont->size() << " elements"); - //std::cout << "Found trkmht = " << m_hlt_trkmht_met_key << std::endl; + ATH_MSG_DEBUG("Accessing met(trkmht) with " << v_hlt_trkmht_met_cont->size() << " elements"); } // Get HLT trkmhtFTK container - const xAOD::TrigMissingETContainer *hlt_trkmhtFTK_met_cont = 0; - sc = evtStore()->retrieve(hlt_trkmhtFTK_met_cont, m_hlt_trkmhtFTK_met_key); - if (sc.isFailure() || !hlt_trkmhtFTK_met_cont) { + const xAOD::TrigMissingETContainer *v_hlt_trkmhtFTK_met_cont = 0; + sc = evtStore()->retrieve(v_hlt_trkmhtFTK_met_cont, m_hlt_trkmhtFTK_met_key); + if (sc.isFailure() || !v_hlt_trkmhtFTK_met_cont) { ATH_MSG_WARNING("Could not retrieve TrigMissingETContainer with key " << m_hlt_trkmhtFTK_met_key << " from TDS"); } else { - ATH_MSG_DEBUG("Accessing met(trkmhtFTK) with " << hlt_trkmhtFTK_met_cont->size() << " elements"); - //std::cout << "Found trkmhtFTK = " << m_hlt_trkmhtFTK_met_key << std::endl; + ATH_MSG_DEBUG("Accessing met(trkmhtFTK) with " << v_hlt_trkmhtFTK_met_cont->size() << " elements"); } // Get HLT topocl container - const xAOD::TrigMissingETContainer *hlt_topocl_met_cont = 0; - sc = evtStore()->retrieve(hlt_topocl_met_cont, m_hlt_topocl_met_key); - if (sc.isFailure() || !hlt_topocl_met_cont) { + const xAOD::TrigMissingETContainer *v_hlt_topocl_met_cont = 0; + sc = evtStore()->retrieve(v_hlt_topocl_met_cont, m_hlt_topocl_met_key); + if (sc.isFailure() || !v_hlt_topocl_met_cont) { ATH_MSG_WARNING("Could not retrieve TrigMissingETContainer with key " << m_hlt_topocl_met_key << " from TDS"); } else - ATH_MSG_DEBUG("Accessing met(topcl) with " << hlt_topocl_met_cont->size() << " elements"); + ATH_MSG_DEBUG("Accessing met(topcl) with " << v_hlt_topocl_met_cont->size() << " elements"); // Get HLT topocl_PS container - const xAOD::TrigMissingETContainer *hlt_topocl_PS_met_cont = 0; - sc = evtStore()->retrieve(hlt_topocl_PS_met_cont, m_hlt_topocl_PS_met_key); - if (sc.isFailure() || !hlt_topocl_PS_met_cont) { + const xAOD::TrigMissingETContainer *v_hlt_topocl_PS_met_cont = 0; + sc = evtStore()->retrieve(v_hlt_topocl_PS_met_cont, m_hlt_topocl_PS_met_key); + if (sc.isFailure() || !v_hlt_topocl_PS_met_cont) { ATH_MSG_WARNING("Could not retrieve TrigMissingETContainer with key " << m_hlt_topocl_PS_met_key << " from TDS"); } else - ATH_MSG_DEBUG("Accessing met(topocl_PS) with " << hlt_topocl_PS_met_cont->size() << " elements"); + ATH_MSG_DEBUG("Accessing met(topocl_PS) with " << v_hlt_topocl_PS_met_cont->size() << " elements"); // Get HLT topocl_PUC container - const xAOD::TrigMissingETContainer *hlt_topocl_PUC_met_cont = 0; - sc = evtStore()->retrieve(hlt_topocl_PUC_met_cont, m_hlt_topocl_PUC_met_key); - if (sc.isFailure() || !hlt_topocl_PUC_met_cont) { + const xAOD::TrigMissingETContainer *v_hlt_topocl_PUC_met_cont = 0; + sc = evtStore()->retrieve(v_hlt_topocl_PUC_met_cont, m_hlt_topocl_PUC_met_key); + if (sc.isFailure() || !v_hlt_topocl_PUC_met_cont) { ATH_MSG_WARNING("Could not retrieve TrigMissingETContainer with key " << m_hlt_topocl_PUC_met_key << " from TDS"); } else - ATH_MSG_DEBUG("Accessing met(topocl_PUC) with " << hlt_topocl_PUC_met_cont->size() << " elements"); + ATH_MSG_DEBUG("Accessing met(topocl_PUC) with " << v_hlt_topocl_PUC_met_cont->size() << " elements"); // Get HLT FEB container - const xAOD::TrigMissingETContainer *hlt_FEB_met_cont = 0; - sc = evtStore()->retrieve(hlt_FEB_met_cont, m_hlt_FEB_met_key); - if (sc.isFailure() || !hlt_FEB_met_cont) { + const xAOD::TrigMissingETContainer *v_hlt_FEB_met_cont = 0; + sc = evtStore()->retrieve(v_hlt_FEB_met_cont, m_hlt_FEB_met_key); + if (sc.isFailure() || !v_hlt_FEB_met_cont) { ATH_MSG_WARNING("Could not retrieve TrigMissingETContainer with key " << m_hlt_FEB_met_key << " from TDS"); } else - ATH_MSG_DEBUG("Accessing met(FEB) with " << hlt_FEB_met_cont->size() << " elements"); + ATH_MSG_DEBUG("Accessing met(FEB) with " << v_hlt_FEB_met_cont->size() << " elements"); // Get HLT Fex container - const xAOD::TrigMissingETContainer *hlt_Fex_met_cont = 0; - sc = evtStore()->retrieve(hlt_Fex_met_cont, m_hlt_Fex_met_key); - if (sc.isFailure() || !hlt_Fex_met_cont) { + const xAOD::TrigMissingETContainer *v_hlt_Fex_met_cont = 0; + sc = evtStore()->retrieve(v_hlt_Fex_met_cont, m_hlt_Fex_met_key); + if (sc.isFailure() || !v_hlt_Fex_met_cont) { ATH_MSG_WARNING("Could not retrieve TrigMissingETContainer with key " << m_hlt_Fex_met_key << " from TDS"); } else - ATH_MSG_DEBUG("Accessing met(Fex) with " << hlt_Fex_met_cont->size() << " elements"); + ATH_MSG_DEBUG("Accessing met(Fex) with " << v_hlt_Fex_met_cont->size() << " elements"); // Get EF muon and EF egamma containers for signal-like selection // retrieve EF muon container - const xAOD::MuonContainer *hlt_muonEFcontainer = 0; - sc = evtStore()->retrieve(hlt_muonEFcontainer, m_muon_key); - if (sc.isFailure() || !hlt_muonEFcontainer) { + const xAOD::MuonContainer *v_hlt_muonEFcontainer = 0; + sc = evtStore()->retrieve(v_hlt_muonEFcontainer, m_muon_key); + if (sc.isFailure() || !v_hlt_muonEFcontainer) { ATH_MSG_WARNING("Could not retrieve muon container with key " << m_muon_key << " from TDS"); } else - ATH_MSG_DEBUG("Accessing EF muons container with " << hlt_muonEFcontainer->size() << " elements"); + ATH_MSG_DEBUG("Accessing EF muons container with " << v_hlt_muonEFcontainer->size() << " elements"); // retrieve EF electron container - const xAOD::ElectronContainer *hlt_electronEFcontainer = 0; - sc = evtStore()->retrieve(hlt_electronEFcontainer, m_electron_key); - if (sc.isFailure() || !hlt_electronEFcontainer) { + const xAOD::ElectronContainer *v_hlt_electronEFcontainer = 0; + sc = evtStore()->retrieve(v_hlt_electronEFcontainer, m_electron_key); + if (sc.isFailure() || !v_hlt_electronEFcontainer) { ATH_MSG_WARNING("Could not retrieve electron container with key " << m_electron_key << " from TDS"); } else - ATH_MSG_DEBUG("Accessing EF electrons container with " << hlt_electronEFcontainer->size() << " elements"); + ATH_MSG_DEBUG("Accessing EF electrons container with " << v_hlt_electronEFcontainer->size() << " elements"); // Get Offline MET container - const xAOD::MissingETContainer *off_met_cont = 0; - sc = evtStore()->retrieve(off_met_cont, m_off_met_key); - if (sc.isFailure() || !off_met_cont) { - ATH_MSG_DEBUG("Could not retrieve Reconstructed MET term with Key " << m_off_met_key << " : off_met_cont = 0"); - } - else { + const xAOD::MissingETContainer *v_off_met_cont = 0; + sc = evtStore()->retrieve(v_off_met_cont, m_off_met_key); + if (sc.isFailure() || !v_off_met_cont) { + ATH_MSG_DEBUG("Could not retrieve Reconstructed MET term with Key " << m_off_met_key << " : v_off_met_cont = 0"); + } else { ATH_MSG_DEBUG("Got Reconstructed MET term with key " << m_off_met_key); } + + + // Check if signal-like muon exists + ATH_MSG_DEBUG("Going to iterate through muon container"); + bool METMuonFilled = false; // flag is set to true if event satisfies signal-like requirement + float pT_mumu = 0; + bool muonContEmpty = true; + if (v_hlt_muonEFcontainer && v_hlt_muonEFcontainer->size()>0) { + ATH_MSG_DEBUG("HLT EF Muon container exists and is not empty. Going to loop over container."); + muonContEmpty = false; + std::vector<TLorentzVector> muonCollection; + for (auto muon : *v_hlt_muonEFcontainer) { + // If a muon in this event satifies the requirements, we will fill in MET for this event. + if(muon->muonType() == xAOD::Muon::Combined && (muon->pt()/CLHEP::GeV > m_muon_pt_thresh)) { + METMuonFilled = true; + muonCollection.push_back(muon->p4()); + } + } + std::sort(muonCollection.begin(),muonCollection.end(),High2LowByPt()); + if(muonCollection.size()>=2)pT_mumu = (muonCollection.at(0)+muonCollection.at(1)).Perp()/CLHEP::GeV; + muonCollection.clear(); + } else { + ATH_MSG_DEBUG("HLT EF Muon container DNE or is empty"); + } + + // Check if signal-like electron exists + ATH_MSG_DEBUG("Going to iterate through electron container"); + bool METElectronFilled = false; + bool electronEtaReq = false; + bool electronContEmpty = true; + if (v_hlt_electronEFcontainer && v_hlt_electronEFcontainer->size()>0) { + ATH_MSG_DEBUG("HLT EF electron container exists and is not empty. Going to loop over container."); + //ATH_MSG_INFO("HLT EF electron container exists and is not empty. Going to loop over container."); + electronContEmpty = false; + for (auto eg : *v_hlt_electronEFcontainer) { + + electronEtaReq = ( fabsf(eg->eta()) < 1.37 || fabsf(eg->eta()) > 1.52 ) && fabsf(eg->eta()) < 2.47; + + if (eg->pt()/CLHEP::GeV > m_electron_pt_thresh && electronEtaReq) { + METElectronFilled = true; + } + } + } else { + ATH_MSG_DEBUG("HLT EF electron container DNE or is empty"); + } + ATH_MSG_DEBUG("Filling histograms..."); @@ -766,8 +638,15 @@ StatusCode HLTMETMonTool::fillMETHist() { //#################### //-- Get met values //#################### - const xAOD::TrigMissingET *hlt_met_obj = 0; - const xAOD::MissingET *off_met_obj = 0; + const xAOD::TrigMissingET *v_hlt_met = 0; + const xAOD::MissingET *v_off_met = 0; + + //*********** + /// L1 JET + //*********** + float l1_jet_pt = -9e9; + float l1_jet_eta = -9e9; + //*********** /// L1 MET @@ -784,19 +663,21 @@ StatusCode HLTMETMonTool::fillMETHist() { float l1_mey_log = -9e9; float l1_met_log = -9e9; float l1_sumet_log = -9e9; + float saturated = false; - if (l1_roi_cont) { - if ((l1_roi_cont->energyX())>-9e12 && (l1_roi_cont->energyX())<9e12 && (l1_roi_cont->energyY())>-9e12 && (l1_roi_cont->energyY())<9e12) { - l1_mex = - (l1_roi_cont->energyX())/CLHEP::GeV; - l1_mey = - (l1_roi_cont->energyY())/CLHEP::GeV; + if (v_l1_roi_cont) { + if ((v_l1_roi_cont->energyX())>-9e12 && (v_l1_roi_cont->energyX())<9e12 && (v_l1_roi_cont->energyY())>-9e12 && (v_l1_roi_cont->energyY())<9e12) { + l1_mex = - (v_l1_roi_cont->energyX())/CLHEP::GeV; + l1_mey = - (v_l1_roi_cont->energyY())/CLHEP::GeV; l1_met = sqrt(l1_mex*l1_mex + l1_mey*l1_mey); l1_phi = atan2f(l1_mey,l1_mex); - l1_sumet = (l1_roi_cont->energyT())/CLHEP::GeV; + l1_sumet = (v_l1_roi_cont->energyT())/CLHEP::GeV; l1_mex_log = signed_log(l1_mex, epsilon); l1_mey_log = signed_log(l1_mey, epsilon); l1_met_log = signed_log(l1_met, epsilon); l1_sumet_log = signed_log(l1_sumet, epsilon); + saturated = (fabs(l1_mex)>16383 || fabs(l1_mey)>16383 ); //this is a hacked way to see if Ex/Ey saturated. There may be better. } else { ATH_MSG_WARNING("L1 POI enegy too large"); } @@ -822,30 +703,57 @@ StatusCode HLTMETMonTool::fillMETHist() { float hlt_significance = -9e9; - //###################################################### - //##### Set main trigger Algorithm #################### - //###################################################### - //if (hlt_cell_met_cont && hlt_cell_met_cont->size()) { - //hlt_met_obj = hlt_cell_met_cont->at(0); - //if (hlt_topocl_met_cont && hlt_topocl_met_cont->size()) { - //hlt_met_obj = hlt_topocl_met_cont->at(0); - if (hlt_mht_met_cont && hlt_mht_met_cont->size()) { - hlt_met_obj = hlt_mht_met_cont->at(0); - - hlt_ex = hlt_met_obj->ex()/CLHEP::GeV; - hlt_ey = hlt_met_obj->ey()/CLHEP::GeV; - hlt_ez = hlt_met_obj->ez()/CLHEP::GeV; + // Set primary trigger Algorithm + std::string primary_name = m_primary_met[0]; + std::string primary_algo = get_trigger_algo(primary_name); + ATH_MSG_DEBUG("Primary Selected Alg : " << primary_algo); + if (primary_algo == "cell" && v_hlt_cell_met_cont && v_hlt_cell_met_cont->size()>0) { + ATH_MSG_DEBUG("Primary Alg : Cell"); + v_hlt_met = v_hlt_cell_met_cont->at(0); + } else if (primary_algo == "mht" && v_hlt_mht_met_cont && v_hlt_mht_met_cont->size()>0) { + ATH_MSG_DEBUG("Primary Alg : MHT"); + v_hlt_met = v_hlt_mht_met_cont->at(0); + } else if (primary_algo == "mhtem" && v_hlt_mhtem_met_cont && v_hlt_mhtem_met_cont->size()>0) { + ATH_MSG_DEBUG("Primary Alg : mht_em"); + v_hlt_met = v_hlt_mhtem_met_cont->at(0); + } else if (primary_algo == "trkmht" && v_hlt_trkmht_met_cont && v_hlt_trkmht_met_cont->size()>0) { + ATH_MSG_DEBUG("Primary Alg : trkmht"); + v_hlt_met = v_hlt_trkmht_met_cont->at(0); + } else if (primary_algo == "trkmhtFTK" && v_hlt_trkmhtFTK_met_cont && v_hlt_trkmhtFTK_met_cont->size()>0) { + ATH_MSG_DEBUG("Primary Alg : trkmhtFTK"); + v_hlt_met = v_hlt_trkmhtFTK_met_cont->at(0); + } else if (primary_algo == "topocl" && v_hlt_topocl_met_cont && v_hlt_topocl_met_cont->size()>0) { + ATH_MSG_DEBUG("Primary Alg : TopoCL"); + v_hlt_met = v_hlt_topocl_met_cont->at(0); + } else if (primary_algo == "topocl_PS" && v_hlt_topocl_PS_met_cont && v_hlt_topocl_PS_met_cont->size()>0) { + ATH_MSG_DEBUG("Primary Alg : TopoCL_PS"); + v_hlt_met = v_hlt_topocl_PS_met_cont->at(0); + } else if (primary_algo == "topocl_PUC" && v_hlt_topocl_PUC_met_cont && v_hlt_topocl_PUC_met_cont->size()>0) { + ATH_MSG_DEBUG("Primary Alg : TopoCL_PUC"); + v_hlt_met = v_hlt_topocl_PUC_met_cont->at(0); + } else if (primary_algo == "FEB" && v_hlt_FEB_met_cont && v_hlt_FEB_met_cont->size()>0) { + ATH_MSG_DEBUG("Primary Alg : FEB"); + v_hlt_met = v_hlt_FEB_met_cont->at(0); + } else if (primary_algo == "Fex" && v_hlt_Fex_met_cont && v_hlt_Fex_met_cont->size()>0) { + ATH_MSG_DEBUG("Primary Alg : FEX"); + v_hlt_met = v_hlt_Fex_met_cont->at(0); + } else { + ATH_MSG_DEBUG("Primary Alg : NONE"); + v_hlt_met = 0; + } + if (v_hlt_met) { + hlt_ex = v_hlt_met->ex()/CLHEP::GeV; + hlt_ey = v_hlt_met->ey()/CLHEP::GeV; + hlt_ez = v_hlt_met->ez()/CLHEP::GeV; hlt_met = sqrt(hlt_ex*hlt_ex+hlt_ey*hlt_ey); - //hlt_me = sqrt(hlt_ex*hlt_ex+hlt_ey*hlt_ey+hlt_ez*hlt_ez); - hlt_sumet = hlt_met_obj->sumEt()/CLHEP::GeV; - hlt_sume = hlt_met_obj->sumE()/CLHEP::GeV; + hlt_sumet = v_hlt_met->sumEt()/CLHEP::GeV; + hlt_sume = v_hlt_met->sumE()/CLHEP::GeV; CLHEP::Hep3Vector v(hlt_ex, hlt_ey, hlt_ez); hlt_eta = v.eta(); hlt_phi = v.phi(); float epsilon = 1e-6; // 1 keV - //if (hlt_me > epsilon) hlt_me_log = log10(fabsf(hlt_me)); // underflow otherwise epsilon = 1.189; hlt_ex_log = signed_log(hlt_ex, epsilon); @@ -869,275 +777,218 @@ StatusCode HLTMETMonTool::fillMETHist() { float off_met = -9e9; float off_sumet = -9e9; float off_phi = -9e9; - if (off_met_cont) { - if (off_met_cont->size()) { - off_met_obj = (*off_met_cont)["FinalClus"]; + if (v_off_met_cont) { + if (v_off_met_cont->size()) { + v_off_met = (*v_off_met_cont)["FinalClus"]; - off_ex = ((*off_met_cont)["FinalClus"]->mpx())/CLHEP::GeV; - off_ey = ((*off_met_cont)["FinalClus"]->mpy())/CLHEP::GeV; + off_ex = ((*v_off_met_cont)["FinalClus"]->mpx())/CLHEP::GeV; + off_ey = ((*v_off_met_cont)["FinalClus"]->mpy())/CLHEP::GeV; off_met = sqrt(off_ex*off_ex+off_ey*off_ey); - off_sumet = ((*off_met_cont)["FinalClus"]->sumet())/CLHEP::GeV; + off_sumet = ((*v_off_met_cont)["FinalClus"]->sumet())/CLHEP::GeV; off_phi = atan2(off_ey, off_ex); } } - TH1 *h(0); - TH2 *h2(0); //######################## - //-- Fill Shifter histograms + //-- Fill histograms //######################## + + // declare iterator etc. + std::map<std::string,int>::const_iterator it; + std::map<std::string, int> met_signatures_tolook; + TH1 *h(0); + TH2 *h2(0); + + // Group and Folder names under Shifter and Expert folders + std::string monGroupName = ""; //L1 or HLT + std::string monFolderName = ""; //Primary, Efficiecny, mht, trigger name etc. + ///////////// /// Shifter L1 ///////////// - std::map<std::string,int>::const_iterator it; + monGroupName = m_shifter_path + "/L1"; - std::string mongroupName = m_shifter_path + "/L1"; - setCurrentMonGroup(mongroupName.c_str()); + // L1 Basic + monFolderName = monGroupName + "/Primary"; + setCurrentMonGroup(monFolderName.c_str()); if (l1_met > epsilon_l1met) { - if ((h = hist("L1_METx"))) h->Fill(l1_mex); - if ((h = hist("L1_METy"))) h->Fill(l1_mey); - if ((h = hist("L1_MET"))) h->Fill(l1_met); - if ((h = hist("L1_SumEt"))) h->Fill(l1_sumet); - if ((h = hist("L1_MET_phi")) && l1_met>0) h->Fill(l1_phi); - if ((h = hist("L1_MET_phi_etweight")) && l1_met>0) h->Fill(l1_phi, l1_met); - if ((h = hist("L1_MET_log"))) h->Fill(l1_met_log); - if ((h = hist("L1_SumEt_log"))) h->Fill(l1_sumet_log); + fillL1BasicHistograms(l1_mex,l1_mex_log,l1_mey,l1_mey_log,l1_met,l1_met_log,l1_sumet,l1_sumet_log,l1_phi,saturated); } - - - TProfile *p(0); + // L1 efficiency - for (it = m_l1_met_signatures_tolook.begin(); it != m_l1_met_signatures_tolook.end(); it++) { - std::string name = it->first; - std::string profname = "Eff_"+ name; - if (getTDT()->isPassed(name, TrigDefs::eventAccepted)) { - //trig_eff_num[0]->Fill(off_met); - if ((p = profile(profname))) p->Fill(off_met,1.0,1.0); - } else { - if ((p = profile(profname))) p->Fill(off_met,0.0,1.0); - } - } - - + monFolderName = monGroupName + "/Efficiency"; + setCurrentMonGroup(monFolderName.c_str()); + + met_signatures_tolook = m_l1_met_signatures_tolook_shifter; + fillL1ProfileHistograms(off_met,pT_mumu,METMuonFilled,met_signatures_tolook); + ///////////// // Shifter HLT ///////////// - setCurrentMonGroup(m_shifter_path + "/HLT"); + monGroupName = m_shifter_path + "/HLT"; - if ((h = hist("HLT_MEx"))) h->Fill(hlt_ex); - if ((h = hist("HLT_MEy"))) h->Fill(hlt_ey); - if ((h = hist("HLT_MET"))) h->Fill(hlt_met); - if ((h = hist("HLT_SumEt"))) h->Fill(hlt_sumet); - if ((h = hist("HLT_MET_phi")) && hlt_met>0) h->Fill(hlt_phi); - if ((h = hist("HLT_MET_phi_etweight")) && hlt_met>0) h->Fill(hlt_phi, hlt_met); - if ((h = hist("HLT_MET_log"))) h->Fill(hlt_met_log); - if ((h = hist("HLT_SumEt_log"))) h->Fill(hlt_sumet_log); - if ((h = hist("HLT_MEz"))) h->Fill(hlt_ez); - if ((h = hist("HLT_SumE"))) h->Fill(hlt_sume); - if ((h2 = hist2("HLT_MET_etaphi")) && hlt_met>0) h2->Fill(hlt_eta, hlt_phi); - if ((h2 = hist2("HLT_MET_etaphi_etweight")) && hlt_met>0) h2->Fill(hlt_eta, hlt_phi, hlt_met); + // HLT Basic + monFolderName = monGroupName + "/Primary"; + setCurrentMonGroup(monFolderName); + if (hlt_met > 0) { // remove MET=0 events + fillHLTBasicHistograms(hlt_ex,hlt_ex_log,hlt_ey,hlt_ey_log,hlt_ez,hlt_ez_log,hlt_met,hlt_met_log,hlt_sumet,hlt_sumet_log,hlt_sume,hlt_sume_log,hlt_phi,hlt_eta,hlt_significance); + } + // HLT efficiency + monFolderName = monGroupName + "/Efficiency"; + setCurrentMonGroup(monFolderName); - // HLT efficiency histos - for (it = m_hlt_met_signatures_tolook.begin(); it != m_hlt_met_signatures_tolook.end(); it++) { - std::string name = it->first; - std::string profname = "Eff_"+name; - if (getTDT()->isPassed(name, TrigDefs::eventAccepted)) { - //trig_eff_num[i_eff]->Fill(off_met); - if ((p = profile(profname))) p->Fill(off_met,1.0,1.0); - } else { - if ((p = profile(profname))) p->Fill(off_met,0.0,1.0); - } + met_signatures_tolook = m_hlt_met_signatures_tolook_shifter; + fillHLTProfileHistograms(off_met,met_signatures_tolook); + + + // HLT mu50 + monFolderName = monGroupName + "/mu50"; + setCurrentMonGroup(monFolderName); + if (hlt_met > 0 && eventInfo) { // remove MET=0 events + if (eventInfo->actualInteractionsPerCrossing()>47. && eventInfo->actualInteractionsPerCrossing()<53.) { + fillHLTBasicHistograms(hlt_ex,hlt_ex_log,hlt_ey,hlt_ey_log,hlt_ez,hlt_ez_log,hlt_met,hlt_met_log,hlt_sumet,hlt_sumet_log,hlt_sume,hlt_sume_log,hlt_phi,hlt_eta,hlt_significance); + } } - /////////////////////////////////////////// - //## fill in signal-like selection histograms ############### - ATH_MSG_DEBUG("Going to iterate through muon container"); - bool METMuonFilled = false; // flag is set to true if event satisfies signal-like requirement - bool muonContEmpty = true; - if (hlt_muonEFcontainer && hlt_muonEFcontainer->size()>0) { - ATH_MSG_DEBUG("HLT EF Muon container exists and is not empty. Going to loop over container."); - muonContEmpty = false; - for (auto muon : *hlt_muonEFcontainer) { - // If a muon in this event satifies the requirements, we will fill in MET for this event. - if(muon->muonType() == xAOD::Muon::Combined && (muon->pt()/CLHEP::GeV > m_muon_pt_thresh)) { - METMuonFilled = true; - } + // HLT signal-like electron + monFolderName = monGroupName + "/SignalEl"; + setCurrentMonGroup(monFolderName); + + if(METElectronFilled == true) { + if (hlt_met > 0) { // remove MET=0 events + fillHLTBasicHistograms(hlt_ex,hlt_ex_log,hlt_ey,hlt_ey_log,hlt_ez,hlt_ez_log,hlt_met,hlt_met_log,hlt_sumet,hlt_sumet_log,hlt_sume,hlt_sume_log,hlt_phi,hlt_eta,hlt_significance); } - } else { - ATH_MSG_DEBUG("HLT EF Muon container DNE or is empty"); - //return StatusCode::SUCCESS; + met_signatures_tolook = m_hlt_met_signatures_tolook_shifter; + fillHLTProfileHistograms(off_met,met_signatures_tolook); } - // Fill in MET if we found a muon in this event that satifies the requirements + + // HLT signal-like muon + monFolderName = monGroupName + "/SignalMu"; + setCurrentMonGroup(monFolderName); + if(METMuonFilled == true) { - if((h = hist("HLT_MET_mu") )) h->Fill(hlt_met); - if((h = hist("HLT_MEx_mu") )) h->Fill(hlt_ex); - if((h = hist("HLT_MEy_mu") )) h->Fill(hlt_ey); - if((h = hist("HLT_SumEt_mu") )) h->Fill(hlt_sumet); - if((h = hist("HLT_MET_phi_mu") ) && hlt_met>0) h->Fill(hlt_phi); - if((h = hist("HLT_MET_phi_etweight_mu") ) && hlt_met>0) h->Fill(hlt_phi,hlt_met); - if((h = hist("HLT_MET_log_mu") )) h->Fill(hlt_met_log); - if((h = hist("HLT_SumEt_log_mu") )) h->Fill(hlt_sumet_log); - if((h = hist("HLT_MEz_mu") )) h->Fill(hlt_ez); - if((h = hist("HLT_SumE_mu") )) h->Fill(hlt_sume); - - TProfile *pmu(0); - for (it = m_hlt_met_signatures_tolook.begin(); it != m_hlt_met_signatures_tolook.end(); it++) { - std::string name = it->first; - std::string mu_profname = "Eff_mu_"+name; - if (getTDT()->isPassed(name, TrigDefs::eventAccepted)) { - if ((pmu = profile(mu_profname))) pmu->Fill(off_met, 1.0, 1.0); - } else { - if ((pmu = profile(mu_profname))) pmu->Fill(off_met, 0.0, 1.0); - } + if (hlt_met > 0) { // remove MET=0 events + fillHLTBasicHistograms(hlt_ex,hlt_ex_log,hlt_ey,hlt_ey_log,hlt_ez,hlt_ez_log,hlt_met,hlt_met_log,hlt_sumet,hlt_sumet_log,hlt_sume,hlt_sume_log,hlt_phi,hlt_eta,hlt_significance); } - + met_signatures_tolook = m_hlt_met_signatures_tolook_shifter; + fillHLTProfileHistograms(off_met,met_signatures_tolook); } + // HLT cell status + monFolderName = monGroupName + "/Status"; + setCurrentMonGroup(monFolderName); - ATH_MSG_DEBUG("Going to iterate through electron container"); - bool METElectronFilled = false; - bool electronEtaReq = false; - bool electronContEmpty = true; - if (hlt_electronEFcontainer && hlt_electronEFcontainer->size()>0) { - ATH_MSG_DEBUG("HLT EF electron container exists and is not empty. Going to loop over container."); - //ATH_MSG_INFO("HLT EF electron container exists and is not empty. Going to loop over container."); - electronContEmpty = false; - for (auto eg : *hlt_electronEFcontainer) { - //ATH_MSG_INFO("--------------"); - //ATH_MSG_INFO("electron found in electronEFContainer"); - - //ATH_MSG_INFO("Electron Pt: " << eg->pt()/CLHEP::GeV << " Eta: " << eg->eta() << " Phi: " << eg->phi()); - - //unsigned int isEMbit = 0; - //ATH_MSG_INFO("Electron is loose: " << eg->selectionisEM(isEMbit,"isEMLoose")); - //ATH_MSG_INFO("Electron is medium: " << eg->selectionisEM(isEMbit,"isEMMedium")); - //ATH_MSG_INFO("Electron is tight: " << eg->selectionisEM(isEMbit,"isEMTight")); - - electronEtaReq = ( std::abs(eg->eta()) < 1.37 || std::abs(eg->eta()) > 1.52 ) && std::abs(eg->eta()) < 2.47; - - //if (eg->pt()/CLHEP::GeV > m_electron_pt_thresh && electronEtaReq && eg->trackParticle()) { - if (eg->pt()/CLHEP::GeV > m_electron_pt_thresh && electronEtaReq) { - METElectronFilled = true; + const xAOD::TrigMissingET *missETEF = 0; + if (v_hlt_cell_met_cont && v_hlt_cell_met_cont->size()) { + missETEF = *(v_hlt_cell_met_cont->begin()); + + // Lumi Block histogram + if ((h = hist("HLT_limiBlock")) && eventInfo) h->Fill(eventInfo->lumiBlock()); + + // <mju> histogram + if ((h = hist("HLT_mu")) && eventInfo) h->Fill(eventInfo->actualInteractionsPerCrossing()); + + // status histogram + TH1F *h1i(0); + bool v_fill_stat = false; + if((h1i = (TH1F *) hist("HLT_MET_status"))) v_fill_stat = true; + for (int i=0; i<32; ++i) { + unsigned mask = (1<<i); + if (missETEF->flag() & mask) { + if(v_fill_stat && h1i) h1i->Fill(i,1.); + } else { + if(v_fill_stat && h1i) h1i->Fill(i,0); } } - } else { - ATH_MSG_DEBUG("HLT EF electron container DNE or is empty"); - //return StatusCode::SUCCESS; - } - - if(METElectronFilled == true) { - if((h = hist("HLT_MET_e") )) h->Fill(hlt_met); - if((h = hist("HLT_MEx_e") )) h->Fill(hlt_ex); - if((h = hist("HLT_MEy_e") )) h->Fill(hlt_ey); - if((h = hist("HLT_SumEt_e") )) h->Fill(hlt_sumet); - if((h = hist("HLT_MET_phi_e") ) && hlt_met>0) h->Fill(hlt_phi); - if((h = hist("HLT_MET_phi_etweight_e") ) && hlt_met>0) h->Fill(hlt_phi,hlt_met); - if((h = hist("HLT_MET_log_e") )) h->Fill(hlt_met_log); - if((h = hist("HLT_SumEt_log_e") )) h->Fill(hlt_sumet_log); - if((h = hist("HLT_MEz_e") )) h->Fill(hlt_ez); - if((h = hist("HLT_SumE_e") )) h->Fill(hlt_sume); - - TProfile *pele(0); - for (it = m_hlt_met_signatures_tolook.begin(); it != m_hlt_met_signatures_tolook.end(); it++) { - std::string name = it->first; - std::string el_profname = "Eff_el_"+name; - if (getTDT()->isPassed(name, TrigDefs::eventAccepted)) { - if ((pele = profile(el_profname))) pele->Fill(off_met, 1.0, 1.0); - } else { - if ((pele = profile(el_profname))) pele->Fill(off_met, 0.0, 1.0); + + // component histograms + unsigned int Nc = missETEF->getNumberOfComponents(); + unsigned int compNc = m_compNames.size(); + Nc = Nc > compNc ? compNc : Nc; + + if (Nc > 0) { + for (unsigned int i = 0; i < Nc; ++i) { // loop over components + float ex = missETEF->exComponent(i)/CLHEP::GeV; + float ey = missETEF->eyComponent(i)/CLHEP::GeV; + float et = sqrt(ex*ex+ey*ey); + float v_comp_et_lin = et; + if((h2 = hist2("compN_compEt_lin"))) h2->Fill(i,v_comp_et_lin); + + bool v_fill_stat = false; + if((h2 = hist2("compN_HLT_MET_status"))) v_fill_stat = true; + // loop over status flags + for (int j=0; j<32; ++j) { + unsigned mask = (1<<j); + if (missETEF->statusComponent(i) & mask) { + if(v_fill_stat && h2) h2->Fill(i,j); + } + } } } + } - - // End of signal-like selection histograms ################# - ////////////////////////////////////////// - - ////////////////////////// - // fill HLT histograms with alternative alg - std::string shifter_partial_path = m_shifter_path + "/HLT/"; - for (std::vector<std::string>::iterator it2 = m_monitoring_alg.begin(); it2 != m_monitoring_alg.end(); it2++) { + /// Alternative algorithms: tc_lcw, tc_em, pueta, pufit, mht, etc. + for (std::vector<std::string>::iterator it2 = m_monitoring_alg_shifter.begin(); it2 != m_monitoring_alg_shifter.end(); it2++) { - std::string name = *it2; - setCurrentMonGroup(shifter_partial_path+name); - ATH_MSG_DEBUG("Histogram Folder : " << shifter_partial_path+name); + monFolderName = monGroupName + "/" + *it2; + setCurrentMonGroup(monFolderName); - //std::cout << "name = " << name << std::endl; + std::string name = *it2; std::string algo = get_trigger_algo(name); - //std::cout << "algo = " << algo << std::endl; ATH_MSG_DEBUG("Alternative Selected Alg : " << algo); - if (algo == "cell" && hlt_cell_met_cont && hlt_cell_met_cont->size()>0) { + if (algo == "cell" && v_hlt_cell_met_cont && v_hlt_cell_met_cont->size()>0) { ATH_MSG_DEBUG("Alternative Alg : Cell"); - hlt_met_obj = hlt_cell_met_cont->at(0); - } else if (algo == "mht" && hlt_mht_met_cont && hlt_mht_met_cont->size()>0) { + v_hlt_met = v_hlt_cell_met_cont->at(0); + } else if (algo == "mht" && v_hlt_mht_met_cont && v_hlt_mht_met_cont->size()>0) { ATH_MSG_DEBUG("Alternative Alg : MHT"); - hlt_met_obj = hlt_mht_met_cont->at(0); - } else if (algo == "mhtem" && hlt_mhtem_met_cont && hlt_mhtem_met_cont->size()>0) { + v_hlt_met = v_hlt_mht_met_cont->at(0); + } else if (algo == "mhtem" && v_hlt_mhtem_met_cont && v_hlt_mhtem_met_cont->size()>0) { ATH_MSG_DEBUG("Alternative Alg : mht_em"); - hlt_met_obj = hlt_mhtem_met_cont->at(0); - } else if (algo == "trkmht" && hlt_trkmht_met_cont && hlt_trkmht_met_cont->size()>0) { + v_hlt_met = v_hlt_mhtem_met_cont->at(0); + } else if (algo == "trkmht" && v_hlt_trkmht_met_cont && v_hlt_trkmht_met_cont->size()>0) { ATH_MSG_DEBUG("Alternative Alg : trkmht"); - hlt_met_obj = hlt_trkmht_met_cont->at(0); - } else if (algo == "trkmhtFTK" && hlt_trkmhtFTK_met_cont && hlt_trkmhtFTK_met_cont->size()>0) { + v_hlt_met = v_hlt_trkmht_met_cont->at(0); + } else if (algo == "trkmhtFTK" && v_hlt_trkmhtFTK_met_cont && v_hlt_trkmhtFTK_met_cont->size()>0) { ATH_MSG_DEBUG("Alternative Alg : trkmhtFTK"); - hlt_met_obj = hlt_trkmhtFTK_met_cont->at(0); - } else if (algo == "topocl" && hlt_topocl_met_cont && hlt_topocl_met_cont->size()>0) { + v_hlt_met = v_hlt_trkmhtFTK_met_cont->at(0); + } else if (algo == "topocl" && v_hlt_topocl_met_cont && v_hlt_topocl_met_cont->size()>0) { ATH_MSG_DEBUG("Alternative Alg : TopoCL"); - hlt_met_obj = hlt_topocl_met_cont->at(0); - } else if (algo == "topocl_PS" && hlt_topocl_PS_met_cont && hlt_topocl_PS_met_cont->size()>0) { + v_hlt_met = v_hlt_topocl_met_cont->at(0); + } else if (algo == "topocl_PS" && v_hlt_topocl_PS_met_cont && v_hlt_topocl_PS_met_cont->size()>0) { ATH_MSG_DEBUG("Alternative Alg : TopoCL_PS"); - hlt_met_obj = hlt_topocl_PS_met_cont->at(0); - } else if (algo == "topocl_PUC" && hlt_topocl_PUC_met_cont && hlt_topocl_PUC_met_cont->size()>0) { + v_hlt_met = v_hlt_topocl_PS_met_cont->at(0); + } else if (algo == "topocl_PUC" && v_hlt_topocl_PUC_met_cont && v_hlt_topocl_PUC_met_cont->size()>0) { ATH_MSG_DEBUG("Alternative Alg : TopoCL_PUC"); - hlt_met_obj = hlt_topocl_PUC_met_cont->at(0); - } else if (algo == "FEB" && hlt_FEB_met_cont && hlt_FEB_met_cont->size()>0) { + v_hlt_met = v_hlt_topocl_PUC_met_cont->at(0); + } else if (algo == "FEB" && v_hlt_FEB_met_cont && v_hlt_FEB_met_cont->size()>0) { ATH_MSG_DEBUG("Alternative Alg : FEB"); - hlt_met_obj = hlt_FEB_met_cont->at(0); - } else if (algo == "Fex" && hlt_Fex_met_cont && hlt_Fex_met_cont->size()>0) { + v_hlt_met = v_hlt_FEB_met_cont->at(0); + } else if (algo == "Fex" && v_hlt_Fex_met_cont && v_hlt_Fex_met_cont->size()>0) { ATH_MSG_DEBUG("Alternative Alg : FEX"); - hlt_met_obj = hlt_Fex_met_cont->at(0); + v_hlt_met = v_hlt_Fex_met_cont->at(0); } else { ATH_MSG_DEBUG("Alternative Alg : NONE"); - hlt_met_obj = 0; - } - ATH_MSG_DEBUG("hlt_met_obj = " << hlt_met_obj); - if (hlt_cell_met_cont && hlt_cell_met_cont->size()) { - ATH_MSG_DEBUG("hlt_met_obj cell = " << hlt_cell_met_cont->at(0)); - ATH_MSG_DEBUG("CELL MET Ex = " << hlt_cell_met_cont->at(0)->ex()/CLHEP::GeV); - } - if (hlt_mht_met_cont && hlt_mht_met_cont->size()) { - ATH_MSG_DEBUG("MHT MET Ex = " << hlt_mht_met_cont->at(0)->ex()/CLHEP::GeV); - } - if (hlt_topocl_met_cont && hlt_topocl_met_cont->size()) { - ATH_MSG_DEBUG("CL MET Ex = " << hlt_topocl_met_cont->at(0)->ex()/CLHEP::GeV); - } - if (hlt_topocl_PS_met_cont && hlt_topocl_PS_met_cont->size()) { - ATH_MSG_DEBUG("PS MET Ex = " << hlt_topocl_PS_met_cont->at(0)->ex()/CLHEP::GeV); - } - if (hlt_topocl_PUC_met_cont && hlt_topocl_PUC_met_cont->size()) { - ATH_MSG_DEBUG("PUC MET Ex = " << hlt_topocl_PUC_met_cont->at(0)->ex()/CLHEP::GeV); - } - if (hlt_FEB_met_cont && hlt_FEB_met_cont->size()) { - ATH_MSG_DEBUG("FEB MET Ex = " << hlt_FEB_met_cont->at(0)->ex()/CLHEP::GeV); + v_hlt_met = 0; } - if (hlt_met_obj) { - float tmp_hlt_ex = hlt_met_obj->ex()/CLHEP::GeV; - float tmp_hlt_ey = hlt_met_obj->ey()/CLHEP::GeV; - float tmp_hlt_ez = hlt_met_obj->ez()/CLHEP::GeV; + if (v_hlt_met) { + float tmp_hlt_ex = v_hlt_met->ex()/CLHEP::GeV; + float tmp_hlt_ey = v_hlt_met->ey()/CLHEP::GeV; + float tmp_hlt_ez = v_hlt_met->ez()/CLHEP::GeV; float tmp_hlt_met = sqrt(tmp_hlt_ex*tmp_hlt_ex+tmp_hlt_ey*tmp_hlt_ey); - float tmp_hlt_sumet = hlt_met_obj->sumEt()/CLHEP::GeV; - float tmp_hlt_sume = hlt_met_obj->sumE()/CLHEP::GeV; + float tmp_hlt_sumet = v_hlt_met->sumEt()/CLHEP::GeV; + float tmp_hlt_sume = v_hlt_met->sumE()/CLHEP::GeV; ATH_MSG_DEBUG("Alternative Ex = " << tmp_hlt_ex); ATH_MSG_DEBUG("Alternative Ey = " << tmp_hlt_ey); ATH_MSG_DEBUG("Alternative MET = " << tmp_hlt_met); @@ -1152,10 +1003,9 @@ StatusCode HLTMETMonTool::fillMETHist() { float tmp_hlt_met_log = -9e9; float tmp_hlt_sume_log = -9e9; float tmp_hlt_sumet_log = -9e9; - //float tmp_hlt_me_log = -9e9; + float tmp_hlt_significance = -9e9; float epsilon = 1e-6; // 1 keV - //if (tmp_hlt_me > epsilon) tmp_hlt_me_log = log10(std::abs(tmp_hlt_me)); // underflow otherwise epsilon = 1.189; tmp_hlt_ex_log = signed_log(tmp_hlt_ex, epsilon); @@ -1164,37 +1014,21 @@ StatusCode HLTMETMonTool::fillMETHist() { tmp_hlt_met_log = signed_log(tmp_hlt_met, epsilon); tmp_hlt_sume_log = signed_log(tmp_hlt_sume, epsilon); tmp_hlt_sumet_log = signed_log(tmp_hlt_sumet, epsilon); + + float tmp_resolution = 0.0; + if (tmp_hlt_sumet>0.0) tmp_resolution = m_sigOffset + m_sigSlope*sqrt(tmp_hlt_sumet) + m_sigQuadr*tmp_hlt_sumet; + if (tmp_resolution>0.0) tmp_hlt_significance = tmp_hlt_met/tmp_resolution; - if ((h = hist("HLT_MEx"))) h->Fill(tmp_hlt_ex); - if ((h = hist("HLT_MEy"))) h->Fill(tmp_hlt_ey); - if ((h = hist("HLT_MEz"))) h->Fill(tmp_hlt_ez); - if ((h = hist("HLT_MET"))) h->Fill(tmp_hlt_met); - if ((h = hist("HLT_MET_lin1"))) h->Fill(tmp_hlt_met); - if ((h = hist("HLT_SumEt"))) h->Fill(tmp_hlt_sumet); - if ((h = hist("HLT_MET_phi")) && tmp_hlt_met>0) h->Fill(tmp_hlt_phi); - if ((h = hist("HLT_MET_phi_etweight")) && tmp_hlt_met>0) h->Fill(tmp_hlt_phi, hlt_met); - if ((h = hist("HLT_MEx_log"))) h->Fill(tmp_hlt_ex_log); - if ((h = hist("HLT_MEy_log"))) h->Fill(tmp_hlt_ey_log); - if ((h = hist("HLT_MEz_log"))) h->Fill(tmp_hlt_ez_log); - if ((h = hist("HLT_MET_log"))) h->Fill(tmp_hlt_met_log); - if ((h = hist("HLT_SumEt_log"))) h->Fill(tmp_hlt_sumet_log); - if ((h = hist("HLT_SumE"))) h->Fill(tmp_hlt_sume); - if ((h = hist("HLT_SumE_log"))) h->Fill(tmp_hlt_sume_log); - if ((h2 = hist2("HLT_MET_etaphi")) && tmp_hlt_met>0) h2->Fill(tmp_hlt_eta, tmp_hlt_phi); - if ((h2 = hist2("HLT_MET_etaphi_etweight")) && tmp_hlt_met>0) h2->Fill(tmp_hlt_eta, tmp_hlt_phi, tmp_hlt_met); - //if ((h = hist("HLT_XS"))) h->Fill(hlt_significance); + fillHLTBasicHistograms(tmp_hlt_ex,tmp_hlt_ex_log,tmp_hlt_ey,tmp_hlt_ey_log,tmp_hlt_ez,tmp_hlt_ez_log,tmp_hlt_met,tmp_hlt_met_log,tmp_hlt_sumet,tmp_hlt_sumet_log,tmp_hlt_sume,tmp_hlt_sume_log,tmp_hlt_phi,tmp_hlt_eta,tmp_hlt_significance); } } - // End of alternative alg histograms - ////////////////////////// - if (!m_make_expert_histograms) - return sc; + if (!m_make_expert_histograms) return sc; //######################## @@ -1206,38 +1040,38 @@ StatusCode HLTMETMonTool::fillMETHist() { ///////////// /// Expert L1 ///////////// - setCurrentMonGroup(m_expert_path+"/L1"); - - if (l1_met > epsilon_l1met) { - if ((h = hist("L1_METx_log"))) h->Fill(l1_mex_log); - if ((h = hist("L1_METy_log"))) h->Fill(l1_mey_log); - //if ((h = hist("L1_MET"))) h->Fill(l1_met); - //if ((h = hist("L1_MET_phi"))) h->Fill(l1_phi); + monGroupName = m_expert_path + "/L1"; + + // L1 Jets + monFolderName = monGroupName + "/Jets"; + setCurrentMonGroup(monFolderName); + if (l1_met > 50) { + for (auto l1_jet : *v_l1_jet_roi_cont) { + l1_jet_pt = l1_jet->et8x8()/CLHEP::GeV; + l1_jet_eta = l1_jet->eta(); + fillL1JetHistograms(l1_jet_pt,l1_jet_eta); + } } - ////////////////////////// - /// L1 Triggers - - std::string expert_partial_path = m_expert_path + "/L1/"; - for (it = m_l1_met_signatures_tolook.begin(); it != m_l1_met_signatures_tolook.end(); it++) { + // L1 efficiency + monFolderName = monGroupName + "/Efficiency"; + setCurrentMonGroup(monFolderName); + + met_signatures_tolook = m_l1_met_signatures_tolook_expert; + fillL1ProfileHistograms(off_met,pT_mumu,METMuonFilled,met_signatures_tolook); + + // L1 Triggers + for (it = m_l1_met_signatures_tolook_shifter.begin(); it != m_l1_met_signatures_tolook_shifter.end(); it++) { std::string name = it->first; ATH_MSG_DEBUG("TriggerLoop: name = " << name); - //if (name == m_denominator_trigger) continue; if (getTDT()->isPassed(name, TrigDefs::eventAccepted)) { ATH_MSG_DEBUG("Passed L1 Trigger : " << name); - setCurrentMonGroup(expert_partial_path+name); - if ((h = hist("L1_MET"))) h->Fill(l1_met); - if ((h = hist("L1_METx"))) h->Fill(l1_mex); - if ((h = hist("L1_METy"))) h->Fill(l1_mey); - if ((h = hist("L1_SumEt"))) h->Fill(l1_sumet); - if ((h = hist("L1_MET_phi")) && l1_met>0) h->Fill(l1_phi); - if ((h = hist("L1_MET_phi_etweight")) && l1_met>0) h->Fill(l1_phi, l1_met); - if ((h = hist("L1_MET_log"))) h->Fill(l1_met_log); - if ((h = hist("L1_METx_log"))) h->Fill(l1_mex_log); - if ((h = hist("L1_METy_log"))) h->Fill(l1_mey_log); - if ((h = hist("L1_SumEt_log"))) h->Fill(l1_sumet_log); + monFolderName = monGroupName + "/" + it->first; + setCurrentMonGroup(monFolderName); + + fillL1BasicHistograms(l1_mex,l1_mex_log,l1_mey,l1_mey_log,l1_met,l1_met_log,l1_sumet,l1_sumet_log,l1_phi,saturated); } } @@ -1247,235 +1081,265 @@ StatusCode HLTMETMonTool::fillMETHist() { /// Expert HLT ///////////// - ////////////////////////// - // fill HLT histograms without trigger requirement - setCurrentMonGroup(m_expert_path+"/HLT"); - if (hlt_met_obj) { - if ((h = hist("HLT_MEx_log"))) h->Fill(hlt_ex_log); - if ((h = hist("HLT_MEy_log"))) h->Fill(hlt_ey_log); - if ((h = hist("HLT_MET_lin1"))) h->Fill(hlt_met); - //if ((h = hist("HLT_MET_phi_etweight")) && hlt_met>0) h->Fill(hlt_phi, hlt_met); - if ((h = hist("HLT_MEz_log"))) h->Fill(hlt_ez_log); - if ((h = hist("HLT_SumE_log"))) h->Fill(hlt_sume_log); - if ((h = hist("HLT_XS"))) h->Fill(hlt_significance); + monGroupName = m_expert_path + "/HLT"; + + // HLT efficiency expert + monFolderName = monGroupName + "/Efficiency"; + setCurrentMonGroup(monFolderName); + + met_signatures_tolook = m_hlt_met_signatures_tolook_expert; + fillHLTProfileHistograms(off_met,met_signatures_tolook); + + + // HLT trigger requiriment: xe35, xe80, xe100 etc. + for (it = m_hlt_met_signatures_tolook_shifter.begin(); it != m_hlt_met_signatures_tolook_shifter.end(); it++) { + monFolderName = monGroupName + "/" + it->first; + setCurrentMonGroup(monFolderName); + + std::string name = it->first; + ATH_MSG_DEBUG("Trig : " << name); + if (getTDT()->isPassed(name, TrigDefs::eventAccepted)) { + fillHLTBasicHistograms(hlt_ex,hlt_ex_log,hlt_ey,hlt_ey_log,hlt_ez,hlt_ez_log,hlt_met,hlt_met_log,hlt_sumet,hlt_sumet_log,hlt_sume,hlt_sume_log,hlt_phi,hlt_eta,hlt_significance); + } } - ///////////////////////////////////////////////////////////////////////////// - // fill in HLT status and component histograms without trigger requirement // - // Available only for cell based MET /////////////////////////////////////// - const xAOD::TrigMissingET *missETEF = 0; - if (hlt_cell_met_cont && hlt_cell_met_cont->size()) { - missETEF = *(hlt_cell_met_cont->begin()); // cell based - - ////////////////////////// - // status histogram - TH1F *h1i(0); - bool fill_stat = false; - if((h1i = (TH1F *) hist("HLT_MET_status"))) fill_stat = true; - for (int i=0; i<32; ++i) { - unsigned mask = (1<<i); - if (missETEF->flag() & mask) { - if(fill_stat && h1i) h1i->Fill(i,1.); - //m_status_flag[i] = 1; - } else { - if(fill_stat && h1i) h1i->Fill(i,0); - //m_status_flag[i] = 0; - } - } + // HLT cell component + monFolderName = monGroupName + "/Component"; + setCurrentMonGroup(monFolderName); - ////////////////////////// - // component histograms - unsigned int Nc = missETEF->getNumberOfComponents(); - unsigned int compNc = m_compNames.size(); - Nc = Nc > compNc ? compNc : Nc; - - if (Nc > 0) { - for (unsigned int i = 0; i < Nc; ++i) { // loop over components - float ex = missETEF->exComponent(i)/CLHEP::GeV; - float ey = missETEF->eyComponent(i)/CLHEP::GeV; - float ez = missETEF->ezComponent(i)/CLHEP::GeV; - float et = sqrt(ex*ex+ey*ey); - float sumE = missETEF->sumEComponent(i)/CLHEP::GeV; - float sumEt = missETEF->sumEtComponent(i)/CLHEP::GeV; - - float comp_ex_log = -9e9; - float comp_ey_log = -9e9; - float comp_ez_log = -9e9; - float comp_et_log = -9e9; - float comp_sum_et_log = -9e9; - float comp_sum_e_log = -9e9; - float comp_sum_et_lin = -9e9; - float comp_sum_e_lin = -9e9; - float comp_et_lin = -9e9; - - if (std::abs(ex)>epsilon) - comp_ex_log = copysign(log10f(std::abs(ex)), ex); - else - comp_ex_log = 0.01; - - if (std::abs(ey)>epsilon) - comp_ey_log = copysign(log10f(std::abs(ey)), ey); - else - comp_ey_log = 0.01; - - if (std::abs(ez)>epsilon) - comp_ez_log = copysign(log10f(std::abs(ez)), ez); - else - comp_ez_log = 0.01; - - comp_et_lin = et; - if (et>1e-6) // i.e. et > 0 - comp_et_log = log10f(et); - else - comp_et_log = -100; // underflow - - comp_sum_et_lin = sumEt; - comp_sum_e_lin = sumE; - - if (std::abs(sumEt)>epsilon) - comp_sum_et_log = copysign(log10f(std::abs(sumEt)), sumEt); - else - comp_sum_et_log = 0.01; - if (std::abs(sumE)>epsilon) - comp_sum_e_log = copysign(log10f(std::abs(sumE)), sumE); - else - comp_sum_e_log = 0.01; - - if((h2 = hist2("compN_compEx"))) h2->Fill(i,comp_ex_log); - if((h2 = hist2("compN_compEy"))) h2->Fill(i,comp_ey_log); - if((h2 = hist2("compN_compEz"))) h2->Fill(i,comp_ez_log); - if((h2 = hist2("compN_compEt"))) h2->Fill(i,comp_et_log); - if((h2 = hist2("compN_compSumEt"))) h2->Fill(i,comp_sum_et_log); - if((h2 = hist2("compN_compSumE"))) h2->Fill(i,comp_sum_e_log); - if((h2 = hist2("compN_compEt_lin"))) h2->Fill(i,comp_et_lin); - if((h2 = hist2("compN_compSumEt_lin"))) h2->Fill(i,comp_sum_et_lin); - - bool fill_stat = false; - if((h2 = hist2("compN_HLT_MET_status"))) fill_stat = true; - // loop over status flags - for (int j=0; j<32; ++j) { - unsigned mask = (1<<j); - if (missETEF->statusComponent(i) & mask) { - if(fill_stat && h2) h2->Fill(i,j); - } - } - - float nchan_used = missETEF->usedChannelsComponent(i); - if(nchan_used > epsilon) nchan_used = log10f(nchan_used); - else nchan_used = -1.; - if((h2 = hist2("compN_HLT_usedChannels"))) h2->Fill(i,nchan_used); - - CLHEP::Hep3Vector v(ex,ey,ez); - double eta = v.eta(); - double phi = v.phi(); - - if((h2 = hist2(Form("compN_EtaPhi_%02d", i)))) h2->Fill(eta, phi); - if((h2 = hist2(Form("compEt_lin_EtaPhi_%02d", i)))) h2->Fill(eta, phi, comp_et_lin); - if((h2 = hist2(Form("compSumEt_lin_EtaPhi_%02d", i)))) h2->Fill(eta, phi, comp_sum_et_lin); - if((h2 = hist2(Form("compSumE_lin_EtaPhi_%02d", i)))) h2->Fill(eta, phi, comp_sum_e_lin); - } + if (v_hlt_cell_met_cont && v_hlt_cell_met_cont->size()) { + missETEF = *(v_hlt_cell_met_cont->begin()); // cell based + + // component histograms + unsigned int Nc = missETEF->getNumberOfComponents(); + unsigned int compNc = m_compNames.size(); + Nc = Nc > compNc ? compNc : Nc; + + if (Nc > 0) { + for (unsigned int i = 0; i < Nc; ++i) { // loop over components + float ex = missETEF->exComponent(i)/CLHEP::GeV; + float ey = missETEF->eyComponent(i)/CLHEP::GeV; + float ez = missETEF->ezComponent(i)/CLHEP::GeV; + float et = sqrt(ex*ex+ey*ey); + float sumE = missETEF->sumEComponent(i)/CLHEP::GeV; + float sumEt = missETEF->sumEtComponent(i)/CLHEP::GeV; + + float v_comp_ex_log = -9e9; + float v_comp_ey_log = -9e9; + float v_comp_ez_log = -9e9; + float v_comp_et_log = -9e9; + float v_comp_sum_et_log = -9e9; + float v_comp_sum_e_log = -9e9; + float v_comp_sum_et_lin = -9e9; + //float m_comp_sum_e_lin = -9e9; + float v_comp_et_lin = -9e9; + + if (fabsf(ex)>epsilon) + v_comp_ex_log = copysign(log10f(fabsf(ex)), ex); + else + v_comp_ex_log = 0.01; + + if (fabsf(ey)>epsilon) + v_comp_ey_log = copysign(log10f(fabsf(ey)), ey); + else + v_comp_ey_log = 0.01; + + if (fabsf(ez)>epsilon) + v_comp_ez_log = copysign(log10f(fabsf(ez)), ez); + else + v_comp_ez_log = 0.01; + + v_comp_et_lin = et; + if (et>1e-6) // i.e. et > 0 + v_comp_et_log = log10f(et); + else + v_comp_et_log = -100; // underflow + + v_comp_sum_et_lin = sumEt; + + if (fabsf(sumEt)>epsilon) + v_comp_sum_et_log = copysign(log10f(fabsf(sumEt)), sumEt); + else + v_comp_sum_et_log = 0.01; + if (fabsf(sumE)>epsilon) + v_comp_sum_e_log = copysign(log10f(fabsf(sumE)), sumE); + else + v_comp_sum_e_log = 0.01; + + if((h2 = hist2("compN_compEx"))) h2->Fill(i,v_comp_ex_log); + if((h2 = hist2("compN_compEy"))) h2->Fill(i,v_comp_ey_log); + if((h2 = hist2("compN_compEz"))) h2->Fill(i,v_comp_ez_log); + if((h2 = hist2("compN_compEt"))) h2->Fill(i,v_comp_et_log); + if((h2 = hist2("compN_compSumEt"))) h2->Fill(i,v_comp_sum_et_log); + if((h2 = hist2("compN_compSumE"))) h2->Fill(i,v_comp_sum_e_log); + if((h2 = hist2("compN_compEt_lin"))) h2->Fill(i,v_comp_et_lin); + if((h2 = hist2("compN_compSumEt_lin"))) h2->Fill(i,v_comp_sum_et_lin); + + bool v_fill_stat = false; + if((h2 = hist2("compN_HLT_MET_status"))) v_fill_stat = true; + // loop over status flags + for (int j=0; j<32; ++j) { + unsigned mask = (1<<j); + if (missETEF->statusComponent(i) & mask) { + if(v_fill_stat && h2) h2->Fill(i,j); + } + } + + float nchan_used = fabsf(missETEF->usedChannelsComponent(i)); + if(nchan_used > epsilon) nchan_used = log10f(nchan_used); + else nchan_used = -1.; + if((h2 = hist2("compN_HLT_usedChannels"))) h2->Fill(i,nchan_used); + + CLHEP::Hep3Vector v(ex,ey,ez); + double eta = v.eta(); + double phi = v.phi(); + + if((h2 = hist2(Form("compEt_lin_EtaPhi_%02d", i)))) h2->Fill(eta, phi, v_comp_et_lin); } + } } - // End of compN histograms - ////////////////////////// - ////////////////////////// - // fill HLT histograms passing monitored triggers - expert_partial_path = m_expert_path + "/HLT/"; - for (it = m_hlt_met_signatures_tolook.begin(); it != m_hlt_met_signatures_tolook.end(); it++) { - std::string name = it->first; - ATH_MSG_DEBUG("Trig : " << name); - if (getTDT()->isPassed(name, TrigDefs::eventAccepted)) { - setCurrentMonGroup(expert_partial_path+name); - - if ((h = hist("HLT_MEx"))) h->Fill(hlt_ex); - if ((h = hist("HLT_MEy"))) h->Fill(hlt_ey); - if ((h = hist("HLT_MEz"))) h->Fill(hlt_ez); - if ((h = hist("HLT_MET"))) h->Fill(hlt_met); - if ((h = hist("HLT_MET_lin1"))) h->Fill(hlt_met); - if ((h = hist("HLT_SumEt"))) h->Fill(hlt_sumet); - if ((h = hist("HLT_MET_phi")) && hlt_met>0) h->Fill(hlt_phi); - if ((h = hist("HLT_MET_phi_etweight")) && hlt_met>0) h->Fill(hlt_phi, hlt_met); - if ((h = hist("HLT_MEx_log"))) h->Fill(hlt_ex_log); - if ((h = hist("HLT_MEy_log"))) h->Fill(hlt_ey_log); - if ((h = hist("HLT_MEz_log"))) h->Fill(hlt_ez_log); - if ((h = hist("HLT_MET_log"))) h->Fill(hlt_met_log); - if ((h = hist("HLT_SumEt_log"))) h->Fill(hlt_sumet_log); - if ((h = hist("HLT_SumE"))) h->Fill(hlt_sume); - if ((h = hist("HLT_SumE_log"))) h->Fill(hlt_sume_log); - if ((h2 = hist2("HLT_MET_etaphi")) && hlt_met>0) h2->Fill(hlt_eta, hlt_phi); - if ((h2 = hist2("HLT_MET_etaphi_etweight")) && hlt_met>0) h2->Fill(hlt_eta, hlt_phi, hlt_met); - //if ((h = hist("HLT_XS"))) h->Fill(hlt_significance); + /// Alternative algorithms: tc_lcw, tc_em, pueta, pufit, mht, etc. + for (std::vector<std::string>::iterator it2 = m_monitoring_alg_expert.begin(); it2 != m_monitoring_alg_expert.end(); it2++) { + + monFolderName = monGroupName + "/" + *it2; + setCurrentMonGroup(monFolderName); + + std::string name = *it2; + std::string algo = get_trigger_algo(name); + ATH_MSG_DEBUG("Alternative Selected Alg : " << algo); + if (algo == "cell" && v_hlt_cell_met_cont && v_hlt_cell_met_cont->size()>0) { + ATH_MSG_DEBUG("Alternative Alg : Cell"); + v_hlt_met = v_hlt_cell_met_cont->at(0); + } else if (algo == "mht" && v_hlt_mht_met_cont && v_hlt_mht_met_cont->size()>0) { + ATH_MSG_DEBUG("Alternative Alg : MHT"); + v_hlt_met = v_hlt_mht_met_cont->at(0); + } else if (algo == "mhtem" && v_hlt_mhtem_met_cont && v_hlt_mhtem_met_cont->size()>0) { + ATH_MSG_DEBUG("Alternative Alg : mht_em"); + v_hlt_met = v_hlt_mhtem_met_cont->at(0); + } else if (algo == "trkmht" && v_hlt_trkmht_met_cont && v_hlt_trkmht_met_cont->size()>0) { + ATH_MSG_DEBUG("Alternative Alg : trkmht"); + v_hlt_met = v_hlt_trkmht_met_cont->at(0); + } else if (algo == "trkmhtFTK" && v_hlt_trkmhtFTK_met_cont && v_hlt_trkmhtFTK_met_cont->size()>0) { + ATH_MSG_DEBUG("Alternative Alg : trkmhtFTK"); + v_hlt_met = v_hlt_trkmhtFTK_met_cont->at(0); + } else if (algo == "topocl" && v_hlt_topocl_met_cont && v_hlt_topocl_met_cont->size()>0) { + ATH_MSG_DEBUG("Alternative Alg : TopoCL"); + v_hlt_met = v_hlt_topocl_met_cont->at(0); + } else if (algo == "topocl_PS" && v_hlt_topocl_PS_met_cont && v_hlt_topocl_PS_met_cont->size()>0) { + ATH_MSG_DEBUG("Alternative Alg : TopoCL_PS"); + v_hlt_met = v_hlt_topocl_PS_met_cont->at(0); + } else if (algo == "topocl_PUC" && v_hlt_topocl_PUC_met_cont && v_hlt_topocl_PUC_met_cont->size()>0) { + ATH_MSG_DEBUG("Alternative Alg : TopoCL_PUC"); + v_hlt_met = v_hlt_topocl_PUC_met_cont->at(0); + } else if (algo == "FEB" && v_hlt_FEB_met_cont && v_hlt_FEB_met_cont->size()>0) { + ATH_MSG_DEBUG("Alternative Alg : FEB"); + v_hlt_met = v_hlt_FEB_met_cont->at(0); + } else if (algo == "Fex" && v_hlt_Fex_met_cont && v_hlt_Fex_met_cont->size()>0) { + ATH_MSG_DEBUG("Alternative Alg : FEX"); + v_hlt_met = v_hlt_Fex_met_cont->at(0); + } else { + ATH_MSG_DEBUG("Alternative Alg : NONE"); + v_hlt_met = 0; } + + if (v_hlt_met) { + float tmp_hlt_ex = v_hlt_met->ex()/CLHEP::GeV; + float tmp_hlt_ey = v_hlt_met->ey()/CLHEP::GeV; + float tmp_hlt_ez = v_hlt_met->ez()/CLHEP::GeV; + float tmp_hlt_met = sqrt(tmp_hlt_ex*tmp_hlt_ex+tmp_hlt_ey*tmp_hlt_ey); + float tmp_hlt_sumet = v_hlt_met->sumEt()/CLHEP::GeV; + float tmp_hlt_sume = v_hlt_met->sumE()/CLHEP::GeV; + ATH_MSG_DEBUG("Alternative Ex = " << tmp_hlt_ex); + ATH_MSG_DEBUG("Alternative Ey = " << tmp_hlt_ey); + ATH_MSG_DEBUG("Alternative MET = " << tmp_hlt_met); + + CLHEP::Hep3Vector v(tmp_hlt_ex, tmp_hlt_ey, tmp_hlt_ez); + float tmp_hlt_eta = v.eta(); + float tmp_hlt_phi = v.phi(); + + float tmp_hlt_ex_log = -9e9; + float tmp_hlt_ey_log = -9e9; + float tmp_hlt_ez_log = -9e9; + float tmp_hlt_met_log = -9e9; + float tmp_hlt_sume_log = -9e9; + float tmp_hlt_sumet_log = -9e9; + float tmp_hlt_significance = -9e9; + + float epsilon = 1e-6; // 1 keV + + epsilon = 1.189; + tmp_hlt_ex_log = signed_log(tmp_hlt_ex, epsilon); + tmp_hlt_ey_log = signed_log(tmp_hlt_ey, epsilon); + tmp_hlt_ez_log = signed_log(tmp_hlt_ez, epsilon); + tmp_hlt_met_log = signed_log(tmp_hlt_met, epsilon); + tmp_hlt_sume_log = signed_log(tmp_hlt_sume, epsilon); + tmp_hlt_sumet_log = signed_log(tmp_hlt_sumet, epsilon); + + float tmp_resolution = 0.0; + if (tmp_hlt_sumet>0.0) tmp_resolution = m_sigOffset + m_sigSlope*sqrt(tmp_hlt_sumet) + m_sigQuadr*tmp_hlt_sumet; + if (tmp_resolution>0.0) tmp_hlt_significance = tmp_hlt_met/tmp_resolution; + + fillHLTBasicHistograms(tmp_hlt_ex,tmp_hlt_ex_log,tmp_hlt_ey,tmp_hlt_ey_log,tmp_hlt_ez,tmp_hlt_ez_log,tmp_hlt_met,tmp_hlt_met_log,tmp_hlt_sumet,tmp_hlt_sumet_log,tmp_hlt_sume,tmp_hlt_sume_log,tmp_hlt_phi,tmp_hlt_eta,tmp_hlt_significance); + + } + } - // End of trigger specific histos - ////////////////////////// + + monGroupName = m_expert_path; ////////////////////////// // Offline MET - setCurrentMonGroup(m_expert_path+"/Offline"); - if (off_met_obj) { - if ((h = hist("Offline_MET"))) h->Fill(off_met); - if ((h = hist("Offline_METx"))) h->Fill(off_ex); - if ((h = hist("Offline_METy"))) h->Fill(off_ey); - if ((h = hist("Offline_SumEt"))) h->Fill(off_sumet); - if ((h = hist("Offline_MET_phi")) && off_met>0) h->Fill(off_phi); + monFolderName = monGroupName + "/Offline"; + setCurrentMonGroup(monFolderName); + + if (v_off_met) { + fillOffMETHistograms(off_met,off_ex,off_ey,off_sumet,off_phi); } - // fill correlation histograms -- L1 vs HLT - //ATH_MSG_INFO("Aqui: " << name); - setCurrentMonGroup(m_expert_path+"/L1_vs_HLT"); - if (l1_roi_cont) { - if ((h2 = hist2("L1_HLT_EtCor"))) h2->Fill(hlt_met, l1_met); - if ((h2 = hist2("L1_HLT_SumEtCor"))) h2->Fill(hlt_sumet, l1_sumet); - if ((h2 = hist2("L1_HLT_PhiCor")) && hlt_met>0) h2->Fill(hlt_phi, l1_phi); - - if ((h = hist("L1_HLT_dEt"))) h->Fill(l1_met - hlt_met); - double dphi = signed_delta_phi(l1_phi, hlt_phi); - if ((h = hist("L1_HLT_dPhi")) && hlt_met>0) h->Fill(dphi); - if ((h = hist("L1_HLT_dEx"))) h->Fill(l1_mex - hlt_ex); - if ((h = hist("L1_HLT_dEy"))) h->Fill(l1_mey - hlt_ey); + + ////////////////////////// + // L1 vs HLT + monFolderName = monGroupName + "/L1_vs_HLT"; + setCurrentMonGroup(monFolderName); + + if (v_l1_roi_cont) { + fillL1vsHLTHistograms(l1_met,l1_mex,l1_mey,l1_sumet,l1_phi,hlt_met,hlt_ex,hlt_ey,hlt_sumet,hlt_phi,saturated); } - // fill correlation histograms -- HLT vs Off - setCurrentMonGroup(m_expert_path+"/HLT_vs_Offline"); - if (off_met_obj) { - if ((h2 = hist2("HLT_Off_EtCor"))) h2->Fill(off_met, hlt_met); - if ((h2 = hist2("HLT_Off_SumEtCor"))) h2->Fill(off_sumet, hlt_sumet); - if ((h2 = hist2("HLT_Off_PhiCor")) && hlt_met>0) h2->Fill(off_phi, hlt_phi); - - if ((h = hist("HLT_Off_dEt"))) h->Fill(hlt_met - off_met); - double dphi = signed_delta_phi(hlt_phi, off_phi); - if ((h = hist("HLT_Off_dPhi")) && hlt_met>0) h->Fill(dphi); - if ((h = hist("HLT_Off_dEx"))) h->Fill(hlt_ex - off_ex); - if ((h = hist("HLT_Off_dEy"))) h->Fill(hlt_ey - off_ey); - } + + ////////////////////////// + // HLT vs Offline + monFolderName = monGroupName + "/HLT_vs_Offline"; + setCurrentMonGroup(monFolderName); + + if (v_off_met) { + fillHLTvsOffHistograms(hlt_met,hlt_ex,hlt_ey,hlt_sumet,hlt_phi,off_met,off_ex,off_ey,off_sumet,off_phi); + } - // fill correlation histograms -- L1 vs Off - setCurrentMonGroup(m_expert_path+"/L1_vs_Offline"); - if (off_met_obj) { - if ((h2 = hist2("L1_Off_EtCor"))) h2->Fill(off_met, l1_met); - if ((h2 = hist2("L1_Off_SumEtCor"))) h2->Fill(off_sumet, l1_sumet); - if ((h2 = hist2("L1_Off_PhiCor")) && l1_met>0) h2->Fill(off_phi, l1_phi); - - if ((h = hist("L1_Off_dEt"))) h->Fill(l1_met - off_met); - double dphi = signed_delta_phi(l1_phi, off_phi); - if ((h = hist("L1_Off_dPhi")) && l1_met>0) h->Fill(dphi); - if ((h = hist("L1_Off_dEx"))) h->Fill(l1_mex - off_ex); - if ((h = hist("L1_Off_dEy"))) h->Fill(l1_mey - off_ey); + + ////////////////////////// + // L1 vs Offline + monFolderName = monGroupName + "/L1_vs_Offline"; + setCurrentMonGroup(monFolderName); + + if (v_off_met) { + fillL1vsOffHistograms(l1_met,l1_mex,l1_mey,l1_sumet,l1_phi,off_met,off_ex,off_ey,off_sumet,off_phi,saturated); } ////////////////////////// // Electron and Muon - setCurrentMonGroup(m_expert_path+"/ElMu"); + monFolderName = monGroupName + "/ElMu"; + setCurrentMonGroup(monFolderName); + int muonMult = 0; if (muonContEmpty == false) { - for (auto muon : *hlt_muonEFcontainer) { + for (auto muon : *v_hlt_muonEFcontainer) { if(muon->muonType() == xAOD::Muon::Combined) { if((h = hist("HLT_muonpt") )) h->Fill(muon->pt()/CLHEP::GeV); muonMult += 1; @@ -1486,11 +1350,9 @@ StatusCode HLTMETMonTool::fillMETHist() { } int electronMult = 0; if (electronContEmpty == false) { - for (auto eg : *hlt_electronEFcontainer) { - //if (eg->trackParticle()) { + for (auto eg : *v_hlt_electronEFcontainer) { if((h = hist("HLT_electronpt") )) h->Fill(eg->pt()/CLHEP::GeV); electronMult += 1; - //} } ATH_MSG_DEBUG("Electron multiciplicity: " << electronMult); if((h = hist("HLT_electronmult") )) h->Fill(electronMult); @@ -1499,6 +1361,425 @@ StatusCode HLTMETMonTool::fillMETHist() { return sc; } +//___________________________________________________________________________________________________________ +void HLTMETMonTool::addL1BasicHistograms() { + + addHistogram(new TH1F("L1_METx", "L1 Missing E_{x};E_{x} (GeV)", m_ec_bins, m_ec_min, m_ec_max)); + addHistogram(new TH1F("L1_METx_log", "L1 Missing E_{x};sgn(E_{x}) log_{10}(E_{x}/GeV)", 55, -4.125, 4.125)); + addHistogram(new TH1F("L1_METy", "L1 Missing E_{y};E_{y} (GeV)", m_ec_bins, m_ec_min, m_ec_max)); + addHistogram(new TH1F("L1_METy_log", "L1 Missing E_{y};sgn(E_{y}) log_{10}(E_{y}/GeV)", 55, -4.125, 4.125)); + addHistogram(new TH1F("L1_MET", "L1 MET (GeV);MET (GeV)", m_et_bins, m_et_min, m_et_max)); + addHistogram(new TH1F("L1_MET_log", "L1 |Missing E_{T}|;log_{10}(ME_{T}/GeV)", 40, -1.875, 4.125)); + addHistogram(new TH1F("L1_SumEt", "L1 SumEt (GeV);SumEt (GeV)", m_sumet_bins, m_sumet_min, m_sumet_max)); + addHistogram(new TH1F("L1_SumEt_log", "L1 Sum |E_{T}|;log_{10}(SumE_{T}/GeV)", 40, -1.875, 4.125)); + addHistogram(new TH1F("L1_MET_phi", "L1 MET #phi (rad);MET #phi (rad)", m_phi_bins, m_phi_min, m_phi_max)); + addHistogram(new TH1F("L1_MET_phi_etweight", "L1 MET #phi (|Missing E_{T}|);MET #phi (rad)", m_phi_bins, m_phi_min, m_phi_max)); + +} + +//___________________________________________________________________________________________________________ +void HLTMETMonTool::fillL1BasicHistograms(float l1_mex,float l1_mex_log,float l1_mey,float l1_mey_log,float l1_met,float l1_met_log,float l1_sumet,float l1_sumet_log,float l1_phi,float saturated) { + + TH1 *h(0); + if ((h = hist("L1_METx"))) h->Fill(l1_mex); + if ((h = hist("L1_METx_log"))) h->Fill(l1_mex_log); + if ((h = hist("L1_METy"))) h->Fill(l1_mey); + if ((h = hist("L1_METy_log"))) h->Fill(l1_mey_log); + if ((h = hist("L1_MET"))) h->Fill(l1_met); + if ((h = hist("L1_MET_log"))) h->Fill(l1_met_log); + if ((h = hist("L1_SumEt"))) h->Fill(l1_sumet); + if ((h = hist("L1_SumEt_log"))) h->Fill(l1_sumet_log); + if ((h = hist("L1_MET_phi")) && l1_met>0 && !saturated) h->Fill(l1_phi); + if ((h = hist("L1_MET_phi_etweight")) && l1_met>0 && !saturated) h->Fill(l1_phi, l1_met); + +} + +//___________________________________________________________________________________________________________ +void HLTMETMonTool::addL1JetHistograms() { + + const int nBins = 13; + double edges[nBins + 1] = {-4.9,-3.1,-2.5,-1.9,-1.3,-0.75,-0.25,0.25,0.75,1.3,1.9,2.5,3.1,4.9}; + addHistogram(new TH2F("L1_Jet_eta_pt", "L1 Jet #eta/p_{T};#eta;p_{T} [GeV]", nBins, edges, 80, 10, 90)); +} + + +//___________________________________________________________________________________________________________ +void HLTMETMonTool::fillL1JetHistograms(float l1_jet_pt,float l1_jet_eta) { + + TH2 *h2(0); + if ((h2 = hist2("L1_Jet_eta_pt")) && l1_jet_pt>0) h2->Fill(l1_jet_eta, l1_jet_pt); + +} + +//___________________________________________________________________________________________________________ +void HLTMETMonTool::addL1ProfileHistograms(std::map<std::string, int> met_signatures_tolook) { + + std::map<std::string,int>::const_iterator it; + for (it = met_signatures_tolook.begin(); it != met_signatures_tolook.end(); it++) { + std::string prof_name = "Eff_" + it->first; + std::string prof_title = prof_name + " Efficiency Missing E_{T};ME_{T} (GeV)"; + addProfile(new TProfile(prof_name.c_str(), prof_title.c_str(), m_eff_bins, m_eff_min, m_eff_max)); + + prof_name = "Eff_mu_" + it->first; + prof_title = prof_name + " Efficiency Missing E_{T};ME_{T} (GeV)"; + addProfile(new TProfile(prof_name.c_str(), prof_title.c_str(), m_eff_bins, m_eff_min, m_eff_max)); + + prof_name = "Eff_mumu_" + it->first; + prof_title = prof_name + " Efficiency Missing E_{T};ME_{T} (GeV)"; + addProfile(new TProfile(prof_name.c_str(), prof_title.c_str(), m_eff_bins, m_eff_min, m_eff_max)); + } + +} + +//___________________________________________________________________________________________________________ +void HLTMETMonTool::fillL1ProfileHistograms(float off_met,float pT_mumu,bool METMuonFilled,std::map<std::string, int> met_signatures_tolook) { + + std::map<std::string,int>::const_iterator it; + TProfile *p(0); + TProfile *pmu(0); + for (it = met_signatures_tolook.begin(); it != met_signatures_tolook.end(); it++) { + std::string name = it->first; + std::string profname = "Eff_"+ name; + if (getTDT()->isPassed(name, TrigDefs::eventAccepted)) { + if ((p = profile(profname))) p->Fill(off_met,1.0,1.0); + } else { + if ((p = profile(profname))) p->Fill(off_met,0.0,1.0); + } + + if(METMuonFilled == true) { + std::string name = it->first; + std::string mu_profname = "Eff_mu_"+name; + if (getTDT()->isPassed(name, TrigDefs::eventAccepted)) { + if ((pmu = profile(mu_profname))) pmu->Fill(off_met, 1.0, 1.0); + } else { + if ((pmu = profile(mu_profname))) pmu->Fill(off_met, 0.0, 1.0); + } + if(pT_mumu>0){ + std::string mumu_name = it->first; + std::string mumu_profname = "Eff_mumu_"+name; + if (getTDT()->isPassed(mumu_name, TrigDefs::eventAccepted)) { + if ((pmu = profile(mumu_profname))) pmu->Fill(pT_mumu, 1.0, 1.0); + } else { + if ((pmu = profile(mumu_profname))) pmu->Fill(pT_mumu, 0.0, 1.0); + } + }//pT_mumu > 0 + }//loop over signatures + } + +} + +//___________________________________________________________________________________________________________ +void HLTMETMonTool::addHLTBasicHistograms() { + + addHistogram(new TH1F("HLT_MEx", "HLT Missing E_{x};E_{x} (GeV)", m_ec_bins, m_ec_min, m_ec_max)); + addHistogram(new TH1F("HLT_MEx_log", "HLT Missing E_{x};sgn(E_{x}) log_{10}(E_{x}/GeV)", 27, -4.125, 4.125)); + addHistogram(new TH1F("HLT_MEy", "HLT Missing E_{y};E_{y} (GeV)", m_ec_bins, m_ec_min, m_ec_max)); + addHistogram(new TH1F("HLT_MEy_log", "HLT Missing E_{y};sgn(E_{y}) log_{10}(E_{y}/GeV)", 27, -4.125, 4.125)); + addHistogram(new TH1F("HLT_MEz", "HLT Missing E_{z};E_{z} (GeV)", m_ec_bins, m_ec_min, m_ec_max)); + addHistogram(new TH1F("HLT_MEz_log", "HLT Missing E_{z};sgn(ME_{z}) log_{10}(ME_{z}/GeV)",27, -4.125, 4.125)); + addHistogram(new TH1F("HLT_MET", "HLT |Missing E_{T}|;ME_{T} (GeV)", m_et_bins, m_et_min, m_et_max)); + addHistogram(new TH1F("HLT_MET_log", "HLT |Missing E_{T}|;log_{10}(ME_{T}/GeV)", 20, -1.875, 4.125)); + addHistogram(new TH1F("HLT_MET_lin1", "HLT |Missing E_{T}| (0-10 GeV);ME_{T} (GeV)", 110, -0.5, 10.5)); + addHistogram(new TH1F("HLT_SumEt", "HLT Sum |E_{T}|;SumE_{T} (GeV)", m_sumet_bins, m_sumet_min, m_sumet_max)); + addHistogram(new TH1F("HLT_SumEt_log", "HLT Sum |E_{T}|;log_{10}(SumE_{T}/GeV)", 20, -1.875, 4.125)); + addHistogram(new TH1F("HLT_SumE", "HLT Sum |E|;SumE (GeV)", m_sume_bins, m_sume_min, m_sume_max)); + addHistogram(new TH1F("HLT_SumE_log", "HLT Sum |E|;log_{10}(SumE/GeV)",40, -1.875, 6.125)); + addHistogram(new TH1F("HLT_MET_phi", "HLT MET #phi (rad);#phi (rad)", m_phi_bins, m_phi_min, m_phi_max)); + addHistogram(new TH1F("HLT_MET_phi_etweight", "HLT MET #phi (|Missing E_{T}|);MET #phi (rad)", m_phi_bins, m_phi_min, m_phi_max)); + addHistogram(new TH1F("HLT_MET_eta", "HLT MET #eta (rad);#eta", m_eta_bins, m_eta_min, m_eta_max)); + addHistogram(new TH1F("HLT_MET_eta_etweight", "HLT MET #eta (|Missing E_{T}|);MET #eta", m_eta_bins, m_eta_min, m_eta_max)); + addHistogram(new TH2F("HLT_MET_etaphi", "HLT MET #eta/#phi;#eta;#phi (rad)", m_eta_bins, m_eta_min, m_eta_max, m_phi_bins, m_phi_min, m_phi_max)); + addHistogram(new TH2F("HLT_MET_etaphi_etweight", "HLT MET #eta/#phi(|Missing E_{T}|);#eta;#phi (rad)", m_eta_bins, m_eta_min, m_eta_max, m_phi_bins, m_phi_min, m_phi_max)); + addHistogram(new TH1F("HLT_XS", "HLT MET Significance;Significance (XS/GeV^{1/2})", m_xs_bins, m_xs_min, m_xs_max)); + +} + +//___________________________________________________________________________________________________________ +void HLTMETMonTool::fillHLTBasicHistograms(float hlt_ex,float hlt_ex_log,float hlt_ey,float hlt_ey_log,float hlt_ez,float hlt_ez_log,float hlt_met,float hlt_met_log,float hlt_sumet,float hlt_sumet_log,float hlt_sume,float hlt_sume_log,float hlt_phi,float hlt_eta,float hlt_significance) { + + TH1 *h(0); + TH2 *h2(0); + if ((h = hist("HLT_MEx"))) h->Fill(hlt_ex); + if ((h = hist("HLT_MEx_log"))) h->Fill(hlt_ex_log); + if ((h = hist("HLT_MEy"))) h->Fill(hlt_ey); + if ((h = hist("HLT_MEy_log"))) h->Fill(hlt_ey_log); + if ((h = hist("HLT_MEz"))) h->Fill(hlt_ez); + if ((h = hist("HLT_MEz_log"))) h->Fill(hlt_ez_log); + if ((h = hist("HLT_MET"))) h->Fill(hlt_met); + if ((h = hist("HLT_MET_log"))) h->Fill(hlt_met_log); + if ((h = hist("HLT_MET_lin1"))) h->Fill(hlt_met); + if ((h = hist("HLT_SumEt"))) h->Fill(hlt_sumet); + if ((h = hist("HLT_SumEt_log"))) h->Fill(hlt_sumet_log); + if ((h = hist("HLT_SumE"))) h->Fill(hlt_sume); + if ((h = hist("HLT_SumE_log"))) h->Fill(hlt_sume_log); + if ((h = hist("HLT_MET_phi")) && hlt_met>0) h->Fill(hlt_phi); + if ((h = hist("HLT_MET_phi_etweight")) && hlt_met>0) h->Fill(hlt_phi, hlt_met); + if ((h = hist("HLT_MET_eta")) && hlt_met>0) h->Fill(hlt_eta); + if ((h = hist("HLT_MET_eta_etweight")) && hlt_met>0) h->Fill(hlt_eta, hlt_met); + if ((h2 = hist2("HLT_MET_etaphi")) && hlt_met>0) h2->Fill(hlt_eta, hlt_phi); + if ((h2 = hist2("HLT_MET_etaphi_etweight")) && hlt_met>0) h2->Fill(hlt_eta, hlt_phi, hlt_met); + if ((h = hist("HLT_XS"))) h->Fill(hlt_significance); + +} + +//___________________________________________________________________________________________________________ +void HLTMETMonTool::addHLTProfileHistograms(std::map<std::string, int> met_signatures_tolook) { + + std::map<std::string,int>::const_iterator it; + for (it = met_signatures_tolook.begin(); it != met_signatures_tolook.end(); it++) { + std::string prof_name = "Eff_" + it->first; + std::string prof_title = prof_name + " Efficiency Missing E_{T};ME_{T} (GeV)"; + addProfile(new TProfile(prof_name.c_str(), prof_title.c_str(), m_eff_bins, m_eff_min, m_eff_max)); + } + +} + +//___________________________________________________________________________________________________________ +void HLTMETMonTool::fillHLTProfileHistograms(float off_met,std::map<std::string, int> met_signatures_tolook) { + + std::map<std::string,int>::const_iterator it; + TProfile *p(0); + for (it = met_signatures_tolook.begin(); it != met_signatures_tolook.end(); it++) { + std::string name = it->first; + std::string profname = "Eff_"+name; + if (getTDT()->isPassed(name, TrigDefs::eventAccepted)) { + if ((p = profile(profname))) p->Fill(off_met,1.0,1.0); + } else { + if ((p = profile(profname))) p->Fill(off_met,0.0,1.0); + } + } + +} + + +//___________________________________________________________________________________________________________ +void HLTMETMonTool::addHLTStatusHistograms() { + + // Lumiblock histogram + addHistogram(new TH1F("HLT_limiBlock", "HLT Lumi Block", 1000, 0, 1000)); + + // <mu> histogram + addHistogram(new TH1F("HLT_mu", "HLT mu", 100, 0, 100)); + + // status in 1d + TH1F *h1i = new TH1F("HLT_MET_status", "HLT MET Status", 32, -0.5, 31.5); + for (size_t j = 0; j < m_bitNames.size(); j++) { + if(j < m_bitNames.size()) h1i->GetXaxis()->SetBinLabel(j+1, m_bitNames[j].c_str()); + } + addHistogram(h1i); + + // HLT MET all components in one 2d histogram + float fMaxEFC = float(m_compNames.size()); + fMaxEFC -= 0.5; + int fBinEFC = int(m_compNames.size()); + TH2F *h2f[2] = {0}; + h2f[0] = new TH2F("compN_HLT_MET_status", "HLT MET Status VS component;;", fBinEFC, -0.5, fMaxEFC,32, -0.5, 31.5); + h2f[1] = new TH2F("compN_compEt_lin", "HLT MissingE_{T} VS component;;ME_{T} (GeV)", fBinEFC, -0.5, fMaxEFC, 102, -13.5, 601.5); + for (size_t k = 0; k < 2; k++) { // 2 hists + for (size_t cn = 0; cn < m_compNames.size(); cn++) { // 25 bins + if(cn < m_compNames.size()) h2f[k]->GetXaxis()->SetBinLabel(cn+1, m_compNames[cn].c_str()); + } + addHistogram(h2f[k]); + } + +} + +//___________________________________________________________________________________________________________ +void HLTMETMonTool::addHLTCompHistograms() { + + // HLT MET all components in one 2d histogram + float fMaxEFC = float(m_compNames.size()); + fMaxEFC -= 0.5; + int fBinEFC = int(m_compNames.size()); + TH2F *h2f[10] = {0}; + h2f[0] = new TH2F("compN_compEx", "HLT MissingE_{x} VS component;;sgn(ME_{x}) log_{10}(E_{x}/GeV)", fBinEFC, -0.5, fMaxEFC, 27, -4.125, 4.125); + h2f[1] = new TH2F("compN_compEy", "HLT Missing E_{y} VS component;;sgn(ME_{y}) log_{10}(E_{y}/GeV)", fBinEFC, -0.5, fMaxEFC, 27, -4.125, 4.125); + h2f[2] = new TH2F("compN_compEz", "HLT Missing E_{z} VS component;;sgn(ME_{z}) log_{10}(E_{z}/GeV)", fBinEFC, -0.5, fMaxEFC, 27, -4.125, 4.125); + h2f[3] = new TH2F("compN_compEt", "HLT MissingE_{T} VS component;;sgn(ME_{T}) log_{10}(ME_{T}/GeV)", fBinEFC, -0.5, fMaxEFC, 20, -1.875, 4.125); + h2f[4] = new TH2F("compN_compSumEt", "HLT Sum |E_{T}| VS component;;log_{10}(SumE_{T}/GeV)", fBinEFC, -0.5, fMaxEFC, 20, -1.875, 4.125); + h2f[5] = new TH2F("compN_compSumE", "HLT Sum |E| VS component;;log_{10}(SumE/GeV)", fBinEFC, -0.5, fMaxEFC, 20, -1.875, 4.125); + h2f[6] = new TH2F("compN_compEt_lin", "HLT MissingE_{T} VS component;;ME_{T} (GeV)", fBinEFC, -0.5, fMaxEFC, 102, -13.5, 601.5); + h2f[7] = new TH2F("compN_compSumEt_lin", "HLT Sum |E_{T}| VS component;;SumE_{T} (GeV)", fBinEFC, -0.5, fMaxEFC, 236, -30, 2802); + h2f[8] = new TH2F("compN_HLT_MET_status", "HLT MET Status VS component;;", fBinEFC, -0.5, fMaxEFC,32, -0.5, 31.5); + h2f[9] = new TH2F("compN_HLT_usedChannels", "HLT Used Channels VS component;;log_{10}(N > 0)", fBinEFC, -0.5, fMaxEFC,13,-0.5,6.0); + + for (size_t k = 0; k < 10; k++) { // 10 hists + for (size_t cn = 0; cn < m_compNames.size(); cn++) { // 25 bins + if(cn < m_compNames.size()) h2f[k]->GetXaxis()->SetBinLabel(cn+1, m_compNames[cn].c_str()); + } + // for status v. component, set bin labels for Y axis + if (k == 8) { + for (size_t j = 0; j < m_bitNames.size(); j++) { + if(j < m_bitNames.size()) h2f[k]->GetYaxis()->SetBinLabel(j+1, m_bitNames[j].c_str()); + } + h2f[k]->GetYaxis()->SetLabelFont(42); + h2f[k]->GetYaxis()->SetLabelOffset(0.002); + h2f[k]->GetYaxis()->SetLabelSize(0.03); + } + if (k == 9) { + h2f[k]->GetYaxis()->SetBinLabel(1,"none"); + } + addHistogram(h2f[k]); + } + + int phibins = 16; double phimin = m_phi_min; double phimax = m_phi_max; + int etabins = 24; double etamin = -4.8; double etamax = 4.8; + + for (unsigned int j = 0; j < m_compNames.size(); j++) { + std::string name = Form("compEt_lin_EtaPhi_%02d", j); + std::string title = m_compNames[j]; + title += ": MissingE_{T}(#eta, #phi); #eta; #phi [rad];ME_{T}/GeV"; + TH2F* h = new TH2F(name.c_str(), title.c_str(), etabins, etamin, etamax, phibins, phimin, phimax); + addHistogram(h); + } + +} + +//___________________________________________________________________________________________________________ +void HLTMETMonTool::addOffMETHistograms() { + + addHistogram(new TH1F("Offline_MET", "Offline MET;Et", m_et_bins, m_et_min, m_et_max)); + addHistogram(new TH1F("Offline_METx", "Offline METx;Ex", m_ec_bins, m_ec_min, m_ec_max)); + addHistogram(new TH1F("Offline_METy", "Offline METy;Ey", m_ec_bins, m_ec_min, m_ec_max)); + addHistogram(new TH1F("Offline_SumEt", "Offline SumEt;sumEt", m_sumet_bins, m_sumet_min, m_sumet_max)); + addHistogram(new TH1F("Offline_MET_phi", "Offline MET phi;Phi", m_phi_bins, m_phi_min, m_phi_max)); + +} + +//___________________________________________________________________________________________________________ +void HLTMETMonTool::fillOffMETHistograms(float off_met,float off_ex,float off_ey,float off_sumet,float off_phi) { + + TH1 *h(0); + if ((h = hist("Offline_MET"))) h->Fill(off_met); + if ((h = hist("Offline_METx"))) h->Fill(off_ex); + if ((h = hist("Offline_METy"))) h->Fill(off_ey); + if ((h = hist("Offline_SumEt"))) h->Fill(off_sumet); + if ((h = hist("Offline_MET_phi")) && off_met>0) h->Fill(off_phi); + +} + +//___________________________________________________________________________________________________________ +void HLTMETMonTool::addL1vsHLTHistograms() { + + addHistogram(new TH2F("L1_HLT_EtCor", "L1 vs HLT Missing E_{T} ; HLTME_{T} (GeV); L1ME_{T} (GeV)", m_et_bins, m_et_min, m_et_max, m_et_bins, m_et_min, m_et_max)); + addHistogram(new TH2F("L1_HLT_SumEtCor", "L1 vs HLT Sum |E_{T}| ; HLTSum|E_{T}| (GeV); L1Sum|E_{T}| (GeV)", m_sumet_bins, m_sumet_min, m_sumet_max, m_sumet_bins, m_sumet_min, m_sumet_max)); + addHistogram(new TH2F("L1_HLT_PhiCor", "L1 vs HLT #phi ; EF #phi (rad); L1 #phi (rad)", m_phi_bins, m_phi_min, m_phi_max, m_phi_bins, m_phi_min, m_phi_max)); + + addHistogram(new TH1F("L1_HLT_dEt", "#DeltaE_{T}(L1-HLT) ; #DeltaE_{T} (GeV)", m_det_bins, m_det_min, m_det_max)); + addHistogram(new TH1F("L1_HLT_dPhi", "#Delta#phi(L1-HLT) ; #Delta#phi (GeV)", m_phi_bins, m_phi_min, m_phi_max)); + addHistogram(new TH1F("L1_HLT_dEx", "#DeltaE_{x}(L1-HLT) ; #DeltaE_{x} (GeV)", m_det_bins, m_det_min, m_det_max)); + addHistogram(new TH1F("L1_HLT_dEy", "#DeltaE_{y}(L1-HLT) ; #DeltaE_{y} (GeV)", m_det_bins, m_det_min, m_det_max)); + +} + +//___________________________________________________________________________________________________________ +void HLTMETMonTool::fillL1vsHLTHistograms(float l1_met,float l1_sumet,float l1_phi,float l1_mex,float l1_mey,float hlt_met,float hlt_sumet,float hlt_phi,float hlt_ex,float hlt_ey,float saturated) { + + TH1 *h(0); + TH2 *h2(0); + if ((h2 = hist2("L1_HLT_EtCor"))) h2->Fill(hlt_met, l1_met); + if ((h2 = hist2("L1_HLT_SumEtCor"))) h2->Fill(hlt_sumet, l1_sumet); + if ((h2 = hist2("L1_HLT_PhiCor")) && hlt_met>0 && !saturated) h2->Fill(hlt_phi, l1_phi); + + if ((h = hist("L1_HLT_dEt"))) h->Fill(l1_met - hlt_met); + double dphi = signed_delta_phi(l1_phi, hlt_phi); + if ((h = hist("L1_HLT_dPhi")) && hlt_met>0) h->Fill(dphi); + if ((h = hist("L1_HLT_dEx"))) h->Fill(l1_mex - hlt_ex); + if ((h = hist("L1_HLT_dEy"))) h->Fill(l1_mey - hlt_ey); + +} + +//___________________________________________________________________________________________________________ +void HLTMETMonTool::addHLTvsOffHistograms() { + + addHistogram(new TH2F("HLT_Off_EtCor", "HLT vs Offline Missing E_{T} ; Offline MET ; HLT MET", m_et_bins, m_et_min, m_et_max, m_et_bins, m_et_min, m_et_max)); + addHistogram(new TH2F("HLT_Off_SumEtCor", "HLT vs Offline Sum |E_{T}| ; Offline SumEt ; HLT SumEt", m_sumet_bins, m_sumet_min, m_sumet_max, m_sumet_bins, m_sumet_min, m_sumet_max)); + addHistogram(new TH2F("HLT_Off_PhiCor", "HLT vs Offline #phi ; Offline #phi ; HLT #phi", m_phi_bins, m_phi_min, m_phi_max, m_phi_bins, m_phi_min, m_phi_max)); + addHistogram(new TH1F("HLT_Off_dEt", "#DeltaE_{T}(HLT-Offline) ; dEt", m_det_bins, m_det_min, m_det_max)); + addHistogram(new TH1F("HLT_Off_dPhi", "#Delta#phi(HLT-Offline) ; dPhi", m_phi_bins, m_phi_min, m_phi_max)); + addHistogram(new TH1F("HLT_Off_dEx", "#DeltaE_{x}(HLT-Offline) ; dEx", m_det_bins, m_det_min, m_det_max)); + addHistogram(new TH1F("HLT_Off_dEy", "#DeltaE_{y}(HLT-Offline) ; dEy", m_det_bins, m_det_min, m_det_max)); + +} +//___________________________________________________________________________________________________________ +void HLTMETMonTool::fillHLTvsOffHistograms(float hlt_met,float hlt_ex,float hlt_ey,float hlt_sumet,float hlt_phi,float off_met,float off_ex,float off_ey,float off_sumet,float off_phi) { + + TH1 *h(0); + TH2 *h2(0); + if ((h2 = hist2("HLT_Off_EtCor"))) h2->Fill(off_met, hlt_met); + if ((h2 = hist2("HLT_Off_SumEtCor"))) h2->Fill(off_sumet, hlt_sumet); + if ((h2 = hist2("HLT_Off_PhiCor")) && hlt_met>0) h2->Fill(off_phi, hlt_phi); + if ((h = hist("HLT_Off_dEt"))) h->Fill(hlt_met - off_met); + double dphi = signed_delta_phi(hlt_phi, off_phi); + if ((h = hist("HLT_Off_dPhi")) && hlt_met>0) h->Fill(dphi); + if ((h = hist("HLT_Off_dEx"))) h->Fill(hlt_ex - off_ex); + if ((h = hist("HLT_Off_dEy"))) h->Fill(hlt_ey - off_ey); + +} + +//___________________________________________________________________________________________________________ +void HLTMETMonTool::addL1vsOffHistograms() { + + addHistogram(new TH2F("L1_Off_EtCor", "L1 vs Offline Missing E_{T} ; Offline MET ; L1 MET", m_et_bins, m_et_min, m_et_max, m_et_bins, m_et_min, m_et_max)); + addHistogram(new TH2F("L1_Off_SumEtCor", "L1 vs Offline Sum |E_{T}| ; Offline SumEt ; L1 SumEt", m_sumet_bins, m_sumet_min, m_sumet_max, m_sumet_bins, m_sumet_min, m_sumet_max)); + addHistogram(new TH2F("L1_Off_PhiCor", "L1 vs Offline #phi ; Offline #phi ; L1 #phi", m_phi_bins, m_phi_min, m_phi_max, m_phi_bins, m_phi_min, m_phi_max)); + addHistogram(new TH1F("L1_Off_dEt", "#DeltaE_{T}(L1-Offline) ; dEt", m_det_bins, m_det_min, m_det_max)); + addHistogram(new TH1F("L1_Off_dPhi", "#Delta#phi(L1-Offline) ; dPhi", m_phi_bins, m_phi_min, m_phi_max)); + addHistogram(new TH1F("L1_Off_dEx", "#DeltaE_{x}(L1-Offline) ; dEx", m_det_bins, m_det_min, m_det_max)); + addHistogram(new TH1F("L1_Off_dEy", "#DeltaE_{y}(L1-Offline) ; dEy", m_det_bins, m_det_min, m_det_max)); + +} + +//___________________________________________________________________________________________________________ +void HLTMETMonTool::fillL1vsOffHistograms(float l1_met,float l1_mex,float l1_mey,float l1_sumet,float l1_phi,float off_met,float off_ex,float off_ey,float off_sumet,float off_phi,float saturated) { + + TH1 *h(0); + TH2 *h2(0); + if ((h2 = hist2("L1_Off_EtCor"))) h2->Fill(off_met, l1_met); + if ((h2 = hist2("L1_Off_SumEtCor"))) h2->Fill(off_sumet, l1_sumet); + if ((h2 = hist2("L1_Off_PhiCor")) && l1_met>0 && !saturated) h2->Fill(off_phi, l1_phi); + if ((h = hist("L1_Off_dEt"))) h->Fill(l1_met - off_met); + double dphi = signed_delta_phi(l1_phi, off_phi); + if ((h = hist("L1_Off_dPhi")) && l1_met>0) h->Fill(dphi); + if ((h = hist("L1_Off_dEx"))) h->Fill(l1_mex - off_ex); + if ((h = hist("L1_Off_dEy"))) h->Fill(l1_mey - off_ey); + +} + +//___________________________________________________________________________________________________________ +void HLTMETMonTool::addElMuHistograms() { + + // muon histograms + addHistogram(new TH1F("HLT_electronpt", "HLT Electron Pt (GeV)", 50, 0, 100)); + addHistogram(new TH1F("HLT_electronmult", "HLT Electron Multiplicity", 10, 0, 10)); + + // electron histograms + addHistogram(new TH1F("HLT_muonpt", "HLT Muon Pt (GeV)", 200, 0, 100)); + addHistogram(new TH1F("HLT_muonmult", "HLT Muon Multiplicity", 10, 0, 10)); + +} + + +//___________________________________________________________________________________________________________ +void HLTMETMonTool::trigger_decision() { + + std::vector<std::map<std::string,int>> v_met_signatures_tolook_shifter; + v_met_signatures_tolook_shifter.push_back(m_l1_met_signatures_tolook_shifter); + v_met_signatures_tolook_shifter.push_back(m_hlt_met_signatures_tolook_shifter); + + if (m_print_met_trig_stats) { + std::map<std::string,int>::iterator iter; + for (unsigned int i = 0; i<v_met_signatures_tolook_shifter.size(); i++) { + for (iter = v_met_signatures_tolook_shifter[i].begin(); iter != v_met_signatures_tolook_shifter[i].end(); ++iter) { + std::string name = iter->first; + if (getTDT()->isPassed(name, TrigDefs::eventAccepted)) { + iter->second +=1; + } + } + } + } +} + //___________________________________________________________________________________________________________ std::string HLTMETMonTool::get_trigger_level(std::string item) { @@ -1506,6 +1787,8 @@ std::string HLTMETMonTool::get_trigger_level(std::string item) return item.substr(0, n); } + +//___________________________________________________________________________________________________________ std::string HLTMETMonTool::get_trigger_algo(std::string item) { std::string algo = ""; @@ -1535,7 +1818,9 @@ std::string HLTMETMonTool::get_trigger_algo(std::string item) return algo; } -void HLTMETMonTool::check_triggers(std::vector<std::string>& triggers, std::map<std::string,int> &signatures) { + +//___________________________________________________________________________________________________________ +void HLTMETMonTool::check_triggers(std::vector<std::string>& v_triggers, std::map<std::string,int> &v_signatures) { const std::vector<std::string> trig_L1_items = getTDT()->getListOfTriggers("L1_.*"); const std::vector<std::string> trig_EF_items = getTDT()->getListOfTriggers("EF_.*"); @@ -1543,9 +1828,9 @@ void HLTMETMonTool::check_triggers(std::vector<std::string>& triggers, std::map< std::vector<std::string>::const_iterator iter; - for (unsigned int it = 0; it < triggers.size(); ++it) { // Loop over trigger items + for (unsigned int it = 0; it < v_triggers.size(); ++it) { // Loop over trigger items - std::string item = triggers[it]; + std::string item = v_triggers[it]; std::string trig_level = get_trigger_level(item); //item.substr(0,3); ATH_MSG_DEBUG("signature " << item << " requested"); @@ -1557,7 +1842,7 @@ void HLTMETMonTool::check_triggers(std::vector<std::string>& triggers, std::map< std::string L1name = *iter; if (L1name == item) { triggerFound = true; - signatures.insert(std::map<std::string,int>::value_type(item, 0)); + v_signatures.insert(std::map<std::string,int>::value_type(item, 0)); } } if (!triggerFound) { @@ -1569,7 +1854,7 @@ void HLTMETMonTool::check_triggers(std::vector<std::string>& triggers, std::map< std::string EFname = *iter; if (EFname == item) { triggerFound = true; - signatures.insert(std::map<std::string,int>::value_type(item, 0)); + v_signatures.insert(std::map<std::string,int>::value_type(item, 0)); } } if (!triggerFound) @@ -1580,7 +1865,7 @@ void HLTMETMonTool::check_triggers(std::vector<std::string>& triggers, std::map< std::string HLTname = *iter; if (HLTname == item) { triggerFound = true; - signatures.insert(std::map<std::string,int>::value_type(item, 0)); + v_signatures.insert(std::map<std::string,int>::value_type(item, 0)); } } if (!triggerFound) @@ -1594,15 +1879,15 @@ void HLTMETMonTool::check_triggers(std::vector<std::string>& triggers, std::map< void HLTMETMonTool::print_trigger_stats() { // L1 - ATH_MSG_DEBUG("Level-1 Met Triggers to look: " << m_l1_met_signatures_tolook.size()); + ATH_MSG_DEBUG("Level-1 Met Triggers to look: " << m_l1_met_signatures_tolook_shifter.size()); std::map<std::string,int>::iterator iter; - for (iter = m_l1_met_signatures_tolook.begin(); iter!= m_l1_met_signatures_tolook.end(); ++iter) { + for (iter = m_l1_met_signatures_tolook_shifter.begin(); iter!= m_l1_met_signatures_tolook_shifter.end(); ++iter) { ATH_MSG_DEBUG("Events passing " << iter->first << ": " << iter->second); } // EF - ATH_MSG_DEBUG("HLT Met Triggers to look: " << m_hlt_met_signatures_tolook.size()); - for (iter = m_hlt_met_signatures_tolook.begin(); iter != m_hlt_met_signatures_tolook.end(); ++iter) { + ATH_MSG_DEBUG("HLT Met Triggers to look: " << m_hlt_met_signatures_tolook_shifter.size()); + for (iter = m_hlt_met_signatures_tolook_shifter.begin(); iter != m_hlt_met_signatures_tolook_shifter.end(); ++iter) { ATH_MSG_DEBUG("Events passing " << iter->first << ": " << iter->second); } } @@ -1628,8 +1913,8 @@ double HLTMETMonTool::signed_delta_phi(double phi1, double phi2) { double e_log = -9e9; - if (std::abs(e) > epsilon) - e_log = copysign(log10(std::abs(e)), e); + if (fabsf(e) > epsilon) + e_log = copysign(log10(fabsf(e)), e); else e_log = 0.01; diff --git a/Trigger/TrigValidation/TrigP1Test/share/part_lhl2ef_opt.py b/Trigger/TrigValidation/TrigP1Test/share/part_lhl2ef_opt.py index b6453196fa9578a5c059cf95bf3436e9ebd3afd1..1d3deb1b6e0a62d2decfea767ccf746043a23e5a 100644 --- a/Trigger/TrigValidation/TrigP1Test/share/part_lhl2ef_opt.py +++ b/Trigger/TrigValidation/TrigP1Test/share/part_lhl2ef_opt.py @@ -56,7 +56,7 @@ option['l2pu-worker'] = 1 # ================================ # Defines the L2 HLT Implementation to use. It has to be either a python dictionary (like the default argument), a dictionary that configures an HLTImplementation, or a string, that determines the path to the jobOptions to use. This parameter can also be set to dal.HLTImplementation object that will be used blindly to configure the L2 system at your partition. -# option['l2-hlt'] = {'jobOptionsPath': 'TrigExMTHelloWorld/MTHelloWorldOptions.py'} +# option['l2-hlt'] = {'jobOptionsPath': 'AthExHelloWorld/​HelloWorldOptions.py'} # Defines the EF HLT Implementation to use. It has to be either a python dictionary (like the default argument), a dictionary that configures an HLTImplementation, or a string, that determines the path to the jobOptions to use. This parameter can also be set to dal.HLTImplementation object that will be used blindly to configure the EF system at your partition. #option['ef-hlt'] = option['l2-hlt'] diff --git a/Trigger/TriggerCommon/TrigEDMConfig/python/TriggerEDM.py b/Trigger/TriggerCommon/TrigEDMConfig/python/TriggerEDM.py index af1bd17fd728109a573fc7df55b5cee258129aed..ecad149c6ccf1cdd0fcdb57b456b6eb6290ef6b9 100644 --- a/Trigger/TriggerCommon/TrigEDMConfig/python/TriggerEDM.py +++ b/Trigger/TriggerCommon/TrigEDMConfig/python/TriggerEDM.py @@ -350,9 +350,17 @@ TriggerHLTList = [ ('xAOD::TrigMissingET#HLT_TrigEFMissingET_mht', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'MET'), ('xAOD::TrigMissingETAuxContainer#HLT_TrigEFMissingET_mhtAux.', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'MET'), - ('xAOD::TrigMissingET#HLT_TrigEFMissingET_trkmht', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'MET'), - ('xAOD::TrigMissingETAuxContainer#HLT_TrigEFMissingET_trkmhtAux.', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'MET'), - + ('xAOD::TrigMissingET#HLT_TrigEFMissingET_topocltrk_PUC_nojcalib', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'MET'), + ('xAOD::TrigMissingETAuxContainer#HLT_TrigEFMissingET_topocltrk_PUC_nojcalibAux.', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'MET'), + + ('xAOD::TrigMissingET#HLT_TrigEFMissingET_trkmht', 'BS ESD AODFULL AODSLIM', 'MET'), + ('xAOD::TrigMissingETAuxContainer#HLT_TrigEFMissingET_trkmhtAux.', 'BS ESD AODFULL AODSLIM', 'MET'), + ('xAOD::TrigMissingET#HLT_TrigEFMissingET_trkmhtFTK', 'BS ESD AODFULL AODSLIM', 'MET'), + ('xAOD::TrigMissingETAuxContainer#HLT_TrigEFMissingET_trkmhtFTKAux.', 'BS ESD AODFULL AODSLIM', 'MET'), + ('xAOD::TrigMissingET#HLT_TrigEFMissingET_trktc', 'BS ESD AODFULL AODSLIM', 'MET'), + ('xAOD::TrigMissingETAuxContainer#HLT_TrigEFMissingET_trktcAux.', 'BS ESD AODFULL AODSLIM', 'MET'), + ('xAOD::TrigMissingET#HLT_TrigEFMissingET_trktcFTK', 'BS ESD AODFULL AODSLIM', 'MET'), + ('xAOD::TrigMissingETAuxContainer#HLT_TrigEFMissingET_trktcFTKAux.', 'BS ESD AODFULL AODSLIM', 'MET'), ('xAOD::TrigMissingET#HLT_TrigL2MissingET_FEB', 'BS ESD AODFULL AODSLIM', 'MET'), diff --git a/Trigger/TriggerCommon/TriggerMenu/python/menu/SignatureDicts.py b/Trigger/TriggerCommon/TriggerMenu/python/menu/SignatureDicts.py index cbe97169148d4352a41d99cb0805ce6cdf573082..27d5d51fba24459154a2260a26fbc68c72e67ee2 100644 --- a/Trigger/TriggerCommon/TriggerMenu/python/menu/SignatureDicts.py +++ b/Trigger/TriggerCommon/TriggerMenu/python/menu/SignatureDicts.py @@ -298,14 +298,15 @@ METChainParts = { 'threshold' : '', 'multiplicity' : '', 'topo' : AllowedTopos_xe, - 'trigType' : ['xe'], + 'trigType' : ['xe'], 'extra' : ['noL1'], - 'calib' : ['lcw','had','em'], + 'calib' : ['lcw','had','em'], + 'jetCalib' : JetChainParts['jetCalib'], 'L2recoAlg' : ['','l2fsperf','L2FS'], - 'EFrecoAlg' : ['tc','cell','pueta','mht','pufit'], + 'EFrecoAlg' : ['tc','cell','pueta','mht','trkmht','pufit', 'pufittrack', 'trktc'], 'L2muonCorr' : ['','wL2MuFEB','wEFMuFEB'], 'EFmuonCorr' : ['','wEFMu'], - 'addInfo' : ['FStracks'], + 'addInfo' : ['FStracks','FTK','LArH11offMETphi','LArH12offMETphi','LArH11offLArH12offMETphi','LArH11offMETphiJpt1','LArH11offMETphiJpt2','LArH11offMETphiJpt5','LArH11offMETphiJpt10','LArH11offMETphiJpt20','LArH11offMETphiJpt30','LArH12offMETphiJpt1','LArH12offMETphiJpt2','LArH12offMETphiJpt5','LArH12offMETphiJpt10','LArH12offMETphiJpt20','LArH12offMETphiJpt30','LArH11offLArH12offMETphiJpt1','LArH11offLArH12offMETphiJpt2','LArH11offLArH12offMETphiJpt5','LArH11offLArH12offMETphiJpt10','LArH11offLArH12offMETphiJpt20','LArH11offLArH12offMETphiJpt30','LArH11offJpt1','LArH11offJpt2','LArH11offJpt5','LArH11offJpt10','LArH11offJpt20','LArH11offJpt30','LArH12offJpt1','LArH12offJpt2','LArH12offJpt5','LArH12offJpt10','LArH12offJpt20','LArH12offJpt30','LArH11offLArH12offJpt1','LArH11offLArH12offJpt2','LArH11offLArH12offJpt5','LArH11offLArH12offJpt10','LArH11offLArH12offJpt20','LArH11offLArH12offJpt30'], } # ---- MetDictinary of default Values ---- METChainParts_Default = { @@ -315,6 +316,7 @@ METChainParts_Default = { 'threshold' : '', 'extra' : '', 'calib' : 'lcw', + 'jetCalib' : JetChainParts_Default['jetCalib'], 'L2recoAlg' : '', 'EFrecoAlg' : 'cell', 'L2muonCorr' : '', diff --git a/Trigger/TriggerCommon/TriggerMenu/python/met/METSliceFlags.py b/Trigger/TriggerCommon/TriggerMenu/python/met/METSliceFlags.py index f0a0c95920d6053434f0bd149672e74078e5acc7..ef098a8e112344520a7ac33a4d862a9ae871b6f9 100755 --- a/Trigger/TriggerCommon/TriggerMenu/python/met/METSliceFlags.py +++ b/Trigger/TriggerCommon/TriggerMenu/python/met/METSliceFlags.py @@ -2,10 +2,8 @@ """ MET slice specific flags """ - -from AthenaCommon.Logging import logging -from AthenaCommon.JobProperties import JobProperty, JobPropertyContainer, jobproperties -from TriggerMenu.menu.CommonSliceHelper import CommonSliceHelper, AllowedList +from AthenaCommon.JobProperties import JobProperty, JobPropertyContainer +from TriggerMenu.menu.CommonSliceHelper import CommonSliceHelper # create container __author__ = 'T. Bold' diff --git a/Trigger/TriggerCommon/TriggerMenu/python/met/MissingETDef.py b/Trigger/TriggerCommon/TriggerMenu/python/met/MissingETDef.py index 300be93e66518ebcab9290a31914593213d8fc17..33939f14a379b29f943bddd94d99890dbdc43e7e 100644 --- a/Trigger/TriggerCommon/TriggerMenu/python/met/MissingETDef.py +++ b/Trigger/TriggerCommon/TriggerMenu/python/met/MissingETDef.py @@ -12,31 +12,46 @@ from AthenaCommon.Logging import logging logging.getLogger().info("Importing %s",__name__) log = logging.getLogger("TriggerMenu.met.MissingETDef") +def trace(frame, event, arg): + if event == "call": + filename = frame.f_code.co_filename + lineno = frame.f_lineno + print "%s @ %s" % (filename, lineno) + return trace + + + from TrigEFMissingET.TrigEFMissingETConfig import (EFMissingET_Fex_2sidednoiseSupp, EFMissingET_Fex_Jets, + EFMissingET_Fex_TrackAndJets, + EFMissingET_Fex_FTKTrackAndJets, + EFMissingET_Fex_TrackAndClusters, + EFMissingET_Fex_FTKTrackAndClusters, EFMissingET_Fex_topoClusters, EFMissingET_Fex_topoClustersPS, - EFMissingET_Fex_topoClustersPUC) + EFMissingET_Fex_topoClustersPUC, + EFMissingET_Fex_topoClustersTracksPUC) -from TrigL2MissingET.TrigL2MissingETConfig import (L2CaloMissingET_Fex_ReadL2L1, - L2MissingET_Fex) +from TrigL2MissingET.TrigL2MissingETConfig import L2MissingET_Fex from TrigMissingETHypo.TrigMissingETHypoConfig import (EFMetHypoJetsXE, + EFMetHypoTrackAndJetsXE, + EFMetHypoFTKTrackAndJetsXE, + EFMetHypoTrackAndClustersXE, + EFMetHypoFTKTrackAndClustersXE, EFMetHypoTCPSXE, EFMetHypoTCPUCXE, + EFMetHypoTCTrkPUCXE, EFMetHypoTCXE, EFMetHypoTE, EFMetHypoXE, - EFMetHypoXS_2sided, - L2MetHypoFEBXE, - L2MetHypoXE) + EFMetHypoXS_2sided) from TrigMissingETMuon.TrigMissingETMuonConfig import (EFTrigMissingETMuon_Fex, EFTrigMissingETMuon_Fex_Jets, EFTrigMissingETMuon_Fex_topocl, EFTrigMissingETMuon_Fex_topoclPS, EFTrigMissingETMuon_Fex_topoclPUC, - L2CaloTrigMissingETMuon_Fex, L2TrigMissingETMuon_Fex) from TrigGenericAlgs.TrigGenericAlgsConf import PESA__DummyUnseededAllTEAlgo @@ -46,6 +61,7 @@ from TriggerMenu.menu import DictFromChainName from TriggerMenu.menu.HltConfig import L2EFChainDef, mergeRemovingOverlap from TriggerMenu.menu.MenuUtils import splitChainDict from TriggerMenu.muon.MuonDef import L2EFChain_mu +from TriggerMenu.menu.SignatureDicts import METChainParts_Default ############################################################################# class L2EFChain_met(L2EFChainDef): @@ -57,6 +73,8 @@ class L2EFChain_met(L2EFChainDef): self.EFsignatureList = [] self.TErenamingDict = [] + # May as well give the methods easy access to all the input information + self.chainDict = chainDict l1_item_name = chainDict['L1item'] self.l2_input_tes = '' ##MET is un-seeded chain_counter = chainDict['chainCounter'] @@ -102,9 +120,9 @@ class L2EFChain_met(L2EFChainDef): threshold = int(self.chainPart['threshold']) calibration = self.chainPart['calib'] + jetCalib = self.chainPart['jetCalib'] L2recoAlg = self.chainPart['L2recoAlg'] - EFrecoAlg = self.chainPart['EFrecoAlg'] - L2muon = self.chainPart['L2muonCorr'] + EFrecoAlg = self.chainPart['EFrecoAlg'] EFmuon = self.chainPart['EFmuonCorr'] addInfo = self.chainPart["addInfo"] @@ -133,22 +151,10 @@ class L2EFChain_met(L2EFChainDef): ##L1 MET theL2Fex = L2MissingET_Fex() theL2MuonFex = L2TrigMissingETMuon_Fex() - - ##FEB MET at L2 -# theL2FEBL1Check = L2CaloMissingET_Fex_ReadL2L1() - -# theL2FEBMuonFex = L2CaloTrigMissingETMuon_Fex() - - mucorr= '_wMu' if L2muon else '' - if L2recoAlg=="L2FS": - theL2MuonHypo = L2MetHypoFEBXE(name='L2MetHypo_xe%d%s_FEB'%(threshold,mucorr),l2_thr=threshold*GeV) - else: - theL2MuonHypo = L2MetHypoXE('L2MetHypo_xe_noL2%s' %mucorr,l2_thr=threshold*GeV) - mucorr= '_wMu' if EFmuon else '' ##MET with topo-cluster - if EFrecoAlg=='tc' or EFrecoAlg=='pueta' or EFrecoAlg=='pufit' or EFrecoAlg=='mht': + if EFrecoAlg=='tc' or EFrecoAlg=='pueta' or EFrecoAlg=='pufit' or EFrecoAlg=='mht' or EFrecoAlg=='trkmht' or EFrecoAlg=='pufittrack' or EFrecoAlg=='trktc': ##Topo-cluster if EFrecoAlg=='tc': @@ -168,23 +174,86 @@ class L2EFChain_met(L2EFChainDef): theEFMETHypo = EFMetHypoTCXE('EFMetHypo_TC_xe%s_tc%s%s'%(threshold,calibration,mucorr),ef_thr=float(threshold)*GeV) if EFrecoAlg=='pufit': + + doLArH11off=False + doLArH12off=False + LArTag='' + if "LArH11off" in addInfo: + doLArH11off = True + LArTag += '_LArH11off' + if "LArH12off" in addInfo: + doLArH12off = True + LArTag += '_LArH12off' + if "METphi" in addInfo: + LArTag += '_METphi' + + jpt_thr = '-1' + if len(addInfo.split('Jpt'))==2: jpt_thr = addInfo.split('Jpt')[1] + + if "Jpt" in addInfo: + LArTag += '_Jpt'+jpt_thr + #MET fex - theEFMETFex = EFMissingET_Fex_topoClustersPUC() + theEFMETFex = EFMissingET_Fex_topoClustersPUC("EFMissingET_Fex_topoClustersPUC%s"%(addInfo),doLArH11off,doLArH12off,float(jpt_thr)) #Muon correction fex theEFMETMuonFex = EFTrigMissingETMuon_Fex_topoclPUC() mucorr= '_wMu' if EFmuon else '' - theEFMETHypo = EFMetHypoTCPUCXE('EFMetHypo_TCPUC_xe%s_tc%s%s'%(threshold,calibration,mucorr),ef_thr=float(threshold)*GeV) + + theEFMETHypo = EFMetHypoTCPUCXE('EFMetHypo_TCPUC'+LArTag+'_xe%s_tc%s%s'%(threshold,calibration,mucorr),ef_thr=float(threshold)*GeV,labelMET=addInfo) + + + if EFrecoAlg=='pufittrack': + calibCorr = ('_{0}'.format(calibration) if calibration != METChainParts_Default['calib'] else '') + ('_{0}'.format(jetCalib) if jetCalib != METChainParts_Default['jetCalib'] else '') + #MET fex + #print "PUFITTRACK XXXXXXXXXX" + #print calibCorr + theEFMETFex = EFMissingET_Fex_topoClustersTracksPUC("EFMissingET_Fex_topoClustersTracksPUC{0}".format(calibCorr), extraCalib=calibCorr) + #print "PUFITTRACK XXXXXXXXXX" + #print theEFMETFex + #Muon correction fex + theEFMETMuonFex = EFTrigMissingETMuon_Fex_topoclPUC() + #print theEFMETMuonFex + mucorr= '_wMu' if EFmuon else '' + #theEFMETHypo = EFMetHypoTCTrkPUCXE('EFMetHypo_TCTrkPUC_xe%s_tc%s%s'%(threshold,calibration,mucorr),ef_thr=float(threshold)*GeV) + theEFMETHypo = EFMetHypoTCTrkPUCXE('EFMetHypo_TCTrkPUC_xe%s_tc%s%s%s'%(threshold,jetCalib,calibration,mucorr),ef_thr=float(threshold)*GeV, extraCalib=calibCorr) ##MET based on trigger jets if EFrecoAlg=='mht': + calibCorr = ('_{0}'.format(calibration) if calibration != METChainParts_Default['calib'] else '') + ('_{0}'.format(jetCalib) if jetCalib != METChainParts_Default['jetCalib'] else '') + #MET fex - theEFMETFex = EFMissingET_Fex_Jets() + theEFMETFex = EFMissingET_Fex_Jets("EFMissingET_Fex_Jets{0}".format(calibCorr), extraCalib=calibCorr ) #Muon correction fex - theEFMETMuonFex = EFTrigMissingETMuon_Fex_Jets() + theEFMETMuonFex = EFTrigMissingETMuon_Fex_Jets("EFTrigMissingETMuon_Fex_Jets{0}".format(calibCorr) ) #mucorr= '_wMu' if EFmuon else '' - theEFMETHypo = EFMetHypoJetsXE('EFMetHypo_Jets_xe%s_tc%s%s'%(threshold,calibration,mucorr),ef_thr=float(threshold)*GeV) + theEFMETHypo = EFMetHypoJetsXE('EFMetHypo_Jets_xe%s_tc%s%s%s'%(threshold,jetCalib,calibration,mucorr),ef_thr=float(threshold)*GeV, extraCalib=calibCorr) + + + ##MET based on trigger jets + if EFrecoAlg=='trkmht': + #MET fex + if "FTK" in addInfo: theEFMETFex = EFMissingET_Fex_FTKTrackAndJets() + else: theEFMETFex = EFMissingET_Fex_TrackAndJets() + #Muon correction fex + ## this will be added later + theEFMETMuonFex = EFTrigMissingETMuon_Fex_Jets() + #mucorr= '_wMu' if EFmuon else '' + if "FTK" in addInfo: theEFMETHypo = EFMetHypoFTKTrackAndJetsXE('EFMetHypo_FTKTrackAndJets_xe%s_tc%s%s'%(threshold,calibration,mucorr),ef_thr=float(threshold)*GeV) + else: theEFMETHypo = EFMetHypoTrackAndJetsXE('EFMetHypo_TrackAndJets_xe%s_tc%s%s'%(threshold,calibration,mucorr),ef_thr=float(threshold)*GeV) + - + if EFrecoAlg=='trktc': + #MET fex + if "FTK" in addInfo: theEFMETFex = EFMissingET_Fex_FTKTrackAndClusters() + else: theEFMETFex = EFMissingET_Fex_TrackAndClusters() + #Muon correction fex + ## this will never be used + theEFMETMuonFex = EFTrigMissingETMuon_Fex_topocl() + #mucorr= '_wMu' if EFmuon else '' + if "FTK" in addInfo: theEFMETHypo = EFMetHypoFTKTrackAndClustersXE('EFMetHypo_FTKTrackAndClusters_xe%s_tc%s%s'%(threshold,calibration,mucorr),ef_thr=float(threshold)*GeV) + else: theEFMETHypo = EFMetHypoTrackAndClustersXE('EFMetHypo_TrackAndClusters_xe%s_tc%s%s'%(threshold,calibration,mucorr),ef_thr=float(threshold)*GeV) + + ##Topo-cluster with Pile-up suppression if EFrecoAlg=='pueta': #MET fex @@ -210,26 +279,38 @@ class L2EFChain_met(L2EFChainDef): elif self.chainPart['trigType'] == "te": theEFMETHypo = EFMetHypoTE('EFMetHypo_te%d'% threshold,ef_thr=threshold*GeV) else: - theEFMETHypo = EFMetHypoXE('EFMetHypo_xe%s%s'%(threshold,mucorr),ef_thr=float(threshold)*GeV) + LArTag='' + if "LArH11off" in addInfo: LArTag += '_LArH11off' + if "LArH12off" in addInfo: LArTag += '_LArH12off' + if "METphi" in addInfo: LArTag += '_METphi' + theEFMETHypo = EFMetHypoXE('EFMetHypo'+LArTag+'_xe%s%s'%(threshold,mucorr),ef_thr=float(threshold)*GeV) else: log.warning("MET EF algorithm not recognised") #---------------------------------------------------- - # Obtaining the needed jet TEs from the jet code + # Obtaining the needed jet TEs from the jet code and b-jet code #---------------------------------------------------- from TriggerJobOpts.TriggerFlags import TriggerFlags - if "v6" in TriggerFlags.triggerMenuSetup() or "v5" in TriggerFlags.triggerMenuSetup(): - chain = ['j0_lcw', '', [], ["Main"], ['RATE:SingleJet', 'BW:Jet'], -1] - else: - chain = ['j0', '', [], ["Main"], ['RATE:SingleJet', 'BW:Jet'], -1] + + from TriggerMenu.bjet.generateBjetChainDefs import generateChainDefs as generateBjetChainDefs + + chain = ['j0_{0}_{1}'.format(calibration, jetCalib), '', [], ["Main"], ['RATE:SingleJet', 'BW:Jet'], -1] theDictFromChainName = DictFromChainName.DictFromChainName() jetChainDict = theDictFromChainName.getChainDict(chain) jetChainDict['chainCounter'] = 9151 jetChainDef = generateHLTChainDef(jetChainDict) - + #This is a dummy b-jet chain, with a threshold at 20 GeV at the uncalibrated scale. It computes the tracks within each jet RoI. + #Change the calibration by changing 'nojcalib' to the desired calibration scale. + #For pufittrack, we found that the performance was superior using uncalibrated jets. + dummy_bjet_chain = ['j20_{0}_{1}_boffperf_split'.format(calibration, jetCalib), '', [], ["Main"], ['RATE:SingleBJet', 'BW:BJet'], -1] + bjet_chain_dict = theDictFromChainName.getChainDict(dummy_bjet_chain) + bjet_chain_dict["chainCounter"] = 9152 + bjet_chain_dict['topoThreshold'] = None + bjet_chain_def = generateBjetChainDefs(bjet_chain_dict) + #for i in range(3): # m_input[i] = jetChainDef.sequenceList[i]['input'] # m_output[i]= jetChainDef.sequenceList[i]['output'] @@ -271,27 +352,59 @@ class L2EFChain_met(L2EFChainDef): self.L2sequenceList += [[ self.l2_input_tes, [theL2Fex], 'L2_xe_step1']] ##Moun Correction to L1 MET self.L2sequenceList += [[ ['L2_xe_step1', muonSeed], [theL2MuonFex], 'L2_xe_step2']] - - # ##FEB Met - # self.L2sequenceList += [[ 'L2_xe_step2', [theL2FEBL1Check], 'L2_xe_step3']] - - # if L2recoAlg=="l2fsperf": - # #Only execute Muon FEB MET and muon correction - # self.L2sequenceList += [[ ['L2_xe_step3',muonSeed], [theL2FEBMuonFex], 'L2_xe_step4']] - # if L2recoAlg=="L2FS": - # #Hypo on FEB MET - # self.L2sequenceList += [[ ['L2_xe_step3',muonSeed], [theL2FEBMuonFex,theL2MuonHypo], 'L2_xe_step4']] # --- EF --- + + # cell preselection (v7 onwards only) + # First check if we're in a multipart chain (for now assume that we don't apply the preselection for these) + isMulitpartChain = self.chainPart['chainPartName'] != self.chainDict['chainName'] + if EFrecoAlg != 'cell' and 'v6' not in TriggerFlags.triggerMenuSetup() and 'v5' not in TriggerFlags.triggerMenuSetup() and not isMulitpartChain: + # if EFrecoAlg != 'cell' and TriggerFlags.run2Config() != '2016' and not isMulitpartChain: + # a few parameters + cellPresel_minL1Threshold = 50 + cellPresel_threshold = 50 + # work out what the L1 threshold is + import re + match = re.match("L1_XE(\d+)", self.chainDict['L1item']) + if match: + if int(match.group(1) ) >= cellPresel_minL1Threshold: + cellPreselectionFex = EFMissingET_Fex_2sidednoiseSupp() + cellPreselectionMuonFex = EFTrigMissingETMuon_Fex() + cellPreselectionHypo = EFMetHypoXE('EFMetHypo_xe{0}_presel'.format(cellPresel_threshold), ef_thr = float(cellPresel_threshold) * GeV) + + self.EFsequenceList += [[ [''], [cellPreselectionFex], 'EF_xe{0}_step1'.format(cellPresel_threshold) ]] + self.EFsequenceList += [[ ['EF_xe{0}_step1'.format(cellPresel_threshold), muonSeed], [cellPreselectionMuonFex, cellPreselectionHypo], 'EF_xe{0}_step2'.format(cellPresel_threshold) ]] + + self.EFsignatureList += [ [['EF_xe{0}_step1'.format(cellPresel_threshold)]] ] + self.EFsignatureList += [ [['EF_xe{0}_step2'.format(cellPresel_threshold)]] ] + else: + log.info("Pure MET chain doesn't have an L1_XE seed! Will not apply the cell preselection") + + #topocluster if EFrecoAlg=='tc' or EFrecoAlg=='pueta' or EFrecoAlg=='pufit': self.EFsequenceList +=[[ input0,algo0, output0 ]] self.EFsequenceList +=[[ input1,algo1, output1 ]] self.EFsequenceList +=[[ input2,algo2, output2 ]] self.EFsequenceList +=[[ input3,algo3, output3 ]] - self.EFsequenceList +=[[ [output3], [theEFMETFex], 'EF_xe_step1' ]] + self.EFsequenceList +=[[ input4,algo4, output4 ]] + self.EFsequenceList +=[[ [output3,output4], [theEFMETFex], 'EF_xe_step1' ]] self.EFsequenceList +=[[ ['EF_xe_step1',muonSeed], [theEFMETMuonFex, theEFMETHypo], 'EF_xe_step2' ]] - + + + elif EFrecoAlg=='pufittrack': + makelist = lambda x: x if isinstance(x, list) else [x] + self.EFsequenceList += [ [ x['input'], makelist(x['algorithm']), x['output'] ] for x in bjet_chain_def.sequenceList[:-2] ] +# for x in bjet_chain_def.sequenceList[:-2]: +# print x +# print self.EFsequenceList[4][2], "Clusters, output EF_FSTopoClusters" +# print self.EFsequenceList[6][2], "Jets, output EF_8389636500743033767_jetrec_a4tclcwnojcalibFS" +# print self.EFsequenceList[-1][2], "Tracks, output HLT_j20_eta_jsplit_IDTrig" +# print self.EFsequenceList[-5][2], "Vertex, output HLT_superIDTrig_prmVtx" +# Fill the sequence with clusters, jets, tracks, vertices + self.EFsequenceList += [[ [self.EFsequenceList[4][2],self.EFsequenceList[6][2],self.EFsequenceList[-1][2],self.EFsequenceList[-5][2]], [theEFMETFex], 'EF_xe_step1' ]] + self.EFsequenceList += [[ ['EF_xe_step1',muonSeed], [theEFMETMuonFex, theEFMETHypo], 'EF_xe_step2' ]] + #trigger-jet based MET elif EFrecoAlg=='mht': self.EFsequenceList +=[[ input0,algo0, output0 ]] @@ -303,12 +416,61 @@ class L2EFChain_met(L2EFChainDef): self.EFsequenceList +=[[ ['EF_xe_step1',muonSeed], [theEFMETMuonFex, theEFMETHypo], 'EF_xe_step2' ]] if "FStracks" in addInfo: from TrigInDetConf.TrigInDetSequence import TrigInDetSequence - trk_algs = TrigInDetSequence("FullScan", "fullScan", "IDTrig", "FTF").getSequence() - print "XXXXXXXXXXXXXXXXXX" + trk_algs = TrigInDetSequence("FullScan", "fullScan", "IDTrig", sequenceFlavour=["FTF"]).getSequence() print trk_algs[0] dummyAlg = PESA__DummyUnseededAllTEAlgo("EF_DummyFEX_xe") self.EFsequenceList +=[[ [''], [dummyAlg]+trk_algs[0], 'EF_xe_step3' ]] + elif EFrecoAlg=='trkmht': + self.EFsequenceList +=[[ input0,algo0, output0 ]] + self.EFsequenceList +=[[ input1,algo1, output1 ]] + self.EFsequenceList +=[[ input2,algo2, output2 ]] + self.EFsequenceList +=[[ input3,algo3, output3 ]] + self.EFsequenceList +=[[ input4,algo4, output4 ]] + + ##adding FTK tracks in the sequence, + ##if not, adding FullScan tracks + if "FTK" in addInfo: + from TrigInDetConf.TrigInDetFTKSequence import TrigInDetFTKSequence + trk_algs = TrigInDetFTKSequence("FullScan", "fullScan", sequenceFlavour=["FTKVtx"]).getSequence() + dummyAlg = PESA__DummyUnseededAllTEAlgo("EF_DummyFEX_xe") + self.EFsequenceList +=[[ [''], [dummyAlg]+trk_algs[0]+trk_algs[1], 'EF_xe_step0' ]] + + else: + from TrigInDetConf.TrigInDetSequence import TrigInDetSequence + trk_algs = TrigInDetSequence("FullScan", "fullScan", "IDTrig", sequenceFlavour=["FTF"]).getSequence() + dummyAlg = PESA__DummyUnseededAllTEAlgo("EF_DummyFEX_xe") + self.EFsequenceList +=[[ [''], [dummyAlg]+trk_algs[0], 'EF_xe_step0' ]] + + self.EFsequenceList +=[[ [output4,'EF_xe_step0',muonSeed], [theEFMETFex], 'EF_xe_step1' ]] + self.EFsequenceList +=[[ ['EF_xe_step1',muonSeed], [theEFMETMuonFex, theEFMETHypo], 'EF_xe_step2' ]] + + + elif EFrecoAlg=='trktc': + self.EFsequenceList +=[[ input0,algo0, output0 ]] + self.EFsequenceList +=[[ input1,algo1, output1 ]] + self.EFsequenceList +=[[ input2,algo2, output2 ]] + self.EFsequenceList +=[[ input3,algo3, output3 ]] + #self.EFsequenceList +=[[ input4,algo4, output4 ]] + + ##adding FTK tracks in the sequence, + ##if not, adding FullScan tracks + if "FTK" in addInfo: + from TrigInDetConf.TrigInDetFTKSequence import TrigInDetFTKSequence + trk_algs = TrigInDetFTKSequence("FullScan", "fullScan", sequenceFlavour=["FTKVtx"]).getSequence() + dummyAlg = PESA__DummyUnseededAllTEAlgo("EF_DummyFEX_xe") + self.EFsequenceList +=[[ [''], [dummyAlg]+trk_algs[0]+trk_algs[1], 'EF_xe_step0' ]] + + else: + from TrigInDetConf.TrigInDetSequence import TrigInDetSequence + trk_algs = TrigInDetSequence("FullScan", "fullScan", "IDTrig", sequenceFlavour=["FTF"]).getSequence() + dummyAlg = PESA__DummyUnseededAllTEAlgo("EF_DummyFEX_xe") + self.EFsequenceList +=[[ [''], [dummyAlg]+trk_algs[0], 'EF_xe_step0' ]] + + self.EFsequenceList +=[[ [output3,'EF_xe_step0',muonSeed], [theEFMETFex], 'EF_xe_step1' ]] + self.EFsequenceList +=[[ ['EF_xe_step1',muonSeed], [theEFMETMuonFex, theEFMETHypo], 'EF_xe_step2' ]] + + #cell based MET elif EFrecoAlg=='cell': self.EFsequenceList +=[[ [''], [theEFMETFex], 'EF_xe_step1' ]] @@ -319,9 +481,9 @@ class L2EFChain_met(L2EFChainDef): if L2recoAlg=="l2fsperf" or L2recoAlg=="L2FS" : self.L2signatureList += [ [['L2_xe_step1']] ] self.L2signatureList += [ [['L2_xe_step2']] ] -# self.L2signatureList += [ [['L2_xe_step3']] ] -# self.L2signatureList += [ [['L2_xe_step4']] ] + if EFrecoAlg=="trkmht" or EFrecoAlg=="trktc" : + self.EFsignatureList += [ [['EF_xe_step0']] ] self.EFsignatureList += [ [['EF_xe_step1']] ] self.EFsignatureList += [ [['EF_xe_step2']] ] @@ -335,8 +497,11 @@ class L2EFChain_met(L2EFChainDef): if L2recoAlg=="l2fsperf" or L2recoAlg=="L2FS" : self.TErenamingDict['L2_xe_step1']= mergeRemovingOverlap('L2_', self.sig_id_noMult+'_step1') self.TErenamingDict['L2_xe_step2']= mergeRemovingOverlap('L2_', self.sig_id_noMult+'_step2') -# self.TErenamingDict['L2_xe_step3']= mergeRemovingOverlap('L2_', self.sig_id_noMult+'_step3') -# self.TErenamingDict['L2_xe_step4']= mergeRemovingOverlap('L2_', self.sig_id_noMult+'_step4') + + if EFrecoAlg=='trkmht' or EFrecoAlg=='trktc': + self.TErenamingDict['EF_xe_step0']= mergeRemovingOverlap('EF_', self.sig_id_noMult+"_step0") + #if EFrecoAlg=='pufittrack': + # self.TErenamingDict['EF_xe_step0']= mergeRemovingOverlap('EF_', self.sig_id_noMult+"_step0") self.TErenamingDict['EF_xe_step1']= mergeRemovingOverlap('EF_', self.sig_id_noMult+'_step1') if "FStracks" in addInfo: